Java virtual machine implementation checklist
You can review the Java™ virtual machine implementation checklist for specific recommendatons.
Recommendation | Section | Dev | Prod | Comments |
---|---|---|---|---|
JVM Version | JVMs: supported configuration | C | C | Make sure you install the Sterling Selling and Fulfillment Foundation system on certified JVM versions and levels. |
Add -showversion to the JVM command line | Java version | R | R | During the JVM startup, the JVM version and mode are displayed. This simple step helps eliminate cases where the wrong JVM is used. |
Verbose GC Statistics | JVM recommendations: garbage collection statistics | NA | C | Enable verbose GC statistics collection. Understanding the "health" of GCs for each JVM is critical for performance. |
Monitor for Paging | Memory and paging | C | C | The JVM heap must be resident in memory. Performance degrades noticeably if the OS has to page portions of the heap out to disk. |
Monitor for OutOfMemory exceptions | OutOfMemory exceptions | C | C | OutOfMemory exceptions can cause unpredictable application behaviors. As a safety measure, Sterling Selling and Fulfillment Foundation stops the JVM when it catches an OutOfMemory exception. |
For HotSpot JVMs | ||||
For Oracle JDK, run with -XcompressedOops if you do not need heaps up to 32GB. This will provide better memory utilization, increase performance, and reduce the overall footprint, as well. | ||||
IBM® J9 JVM | ||||
For IBM JDK, use -Xcompressedrefs option. | In IBM JDK 1.7, the -Xcompressedrefs option is enabled by default. | |||
For IBM JDK 1.6 SR12, running with -Xcompressedrefs results in lower performance and throughput. For now, IBM suggests running without the -Xcompressedrefs option. | ||||
JVM VM modes | Virtual machine mode | C | C | |
For HotSpot JVMs running WebLogic, set -XX:MaxPermSize=768m | Permanent generation | C | C | The default permanent generation space setting is too small for Oracle JVMs. If you don't increase this setting, the JVM fails and throw a cryptic java.lang.OutOfMemory exception. |
Heap Size | Starting recommendations | C | C | Configuring the JVM Heap correctly is not only critical for performance but also for availability. If the heap is sized too big, the GC pauses could be very long. If the heap is larger than physical memory, the system could "thrash". If the heap is too small, the JVM could experience OutOfMemory exceptions. |