This document describes the tuning techniques and options you can use to ensure your implementation of this JVM performs to maximum capabilities.
Tuning the Oracle JRockit JVM to achieve optimal application performance is a critical requirement for using this product. A poorly tuned JVM can result in slow transactions, long latencies, system freezes, and even system crashes.
Tuning is done as part of the system startup, by using various combinations of the start-up options described in Oracle JRockit Command-Line Reference.
The Oracle JRockit JDK provides the necessary tools to monitor your application at run time. When tuned correctly according to the recommendations in this document, the JVM runs smoothly and provides timely results. If run-time monitoring indicates problems, use the recommendations in this document to better tune the JVM.
This document contains information about the following topics:
Tuning the JRockit JVM results in trade-offs among short garbage collection pause times, high application throughput, and low memory footprint. Chapter 2, "Understanding the Tuning Trade-offs" describes these trade-offs.
Each Java application has its own behavior and its own requirements. The JRockit JVM can accommodate most of them automatically, but to get the optimal performance you must tune some basic parameters. Chapter 3, "Tuning the Oracle JRockit JVM: The First Steps" is an overview of the first steps you take when tuning the JRockit JVM and some best practices for tuning the JVM for a few Oracle applications.
A correctly tuned memory management system minimizes the overhead caused by garbage collection and makes object allocation fast. Chapter 4, "Tuning the Memory Management System" describes the most important options available for tuning the memory management system in the JRockit JVM.
The interaction among Java threads affects the performance of your application. Chapter 5, "Tuning Locks" contains information about the JRockit JVM options for tuning locks and describes how contention for locks are handled.
Do you want your application to run smoothly with minimal pauses caused by the garbage collection? If the answer is yes, then tune for short pause times. Use the tuning techniques described in Chapter 6, "Tuning for Low Latencies" to ensure that pause times are kept to a minimum and transactions execute quickly.
Do you want to minimize the total amount of CPU time spent in garbage collection and spend more time in the application layer? If the answer is yes, then tune for high application performance, or application throughput. Chapter 7, "Tuning for Better Application Throughput" describes how to tune JRockit JVM to ensure that the Java application runs as fast as possible with minimal garbage collector overhead.
For a stable performance of the JVM, you should analyze the performance variance and tune the JVM events as required. Use the tuning techniques described in Chapter 8, "Tuning for Stable Performance" to ensure a better performance.
If you have limited memory resources, then tune the JVM for a small memory footprint by using the tuning techniques described in Chapter 9, "Tuning for a Small Memory Footprint".
To decrease the JVM startup time for small applications, use the tuning techniques described in Chapter 10, "Tuning for a Faster JVM Startup".