JVM monitoring and analysis
This section includes the following information:
The fine tuning of JVM runtime behavior includes: Metaspace allocation (Permsize allocation for pre-jdk1.8), garbage collector selection, heap size allocation, and miscellaneous load planning. This fine tuning is necessary in any web application deployment because non-optimal JVM configurations may result in the following:
- The Garbage Collection (GC) cycle occurring frequently or taking too long, thus consuming CPU cycles that would otherwise be available to service application users
- Memory allocation not being used correctly causing false tenuring thus creating excessive GC
- Memory over allocated causing the OS to swap which adds delays to service time of HTTP requests
- Memory being insufficiently allocated, thus causing excessive GC and JVM instability
This fine-tuning process is necessarily iterative: monitor, adjust, re-monitor, compare, and validate improvements. This is a standard process for runtime behavior adjustment. There is no shortcut to this iterative process, and no fixed recommendation can achieve a similar optimal result given the various hardware and changing nature of user load.
Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*