4 Low Overall Throughput

Low overall throughput manifests as, for example, a low score in benchmarks, too few transactions executing per minute in a transaction-based system, or long processing times for large batches of data.

Low overall throughput usually means that the JVM is not tuned to maximize application throughput. Before engaging in time-consuming troubleshooting and mitigation tasks, try tuning the JVM to optimize application throughput.

For information about tuning the JVM for optimal throughput, see the Oracle JRockit Performance Tuning Guide.

Note that a trade-off exists between overall application throughput and low individual latencies. A JVM that is tuned for optimal overall throughput, consumes as little CPU time as possible in garbage collection and memory management, allowing the Java application to run as much as possible. To minimize unnecessary overhead and extra work during garbage collection, the Java application should be paused for the entire duration of the garbage collection process. The individual pauses might be long; but, in the long run, the overall throughput would be maximized.

You can reduce the latencies without losing too much overall throughput by, for example, limiting the compaction or using a generational garbage collector. For more information, see the Oracle JRockit Performance Tuning Guide.

If the solutions provided in this section do not help you solve the performance degradation problem, contact Oracle Support, as described in Chapter 9, "Contacting Oracle for Support."