PPM Cache Tuning

Tuning PPM Cache performance should be done at the same time as tuning PPM JVM heap size. This means finding the right balance between the following two things:

  • JVM heap size

    Before PPM 9.20, only 32-bit JVM was supported, which limited the JVM heap size to 1.3 GB. Since PPM 9.20 and the adoption of 64-bit JVM, the size of the JVM heap memory is only limited by the installed physical memory. However, too large heap size can result in long full garbage collection times, during which the application is unresponsive. It is common to see PPM JVM heap sizes of up to 4 GB, and sometimes larger on Service nodes.

  • Cache size

    A larger cache size means more cacheable objects, a better hit rate, and fewer objects to reload from the database, which result in better application performance. However, if cached objects end up taking too much memory, it will impact the performance of the application and might even cause out-of-memory problems. Note that only legacy cache is prone to cause such memory problems, as the JVM will automatically discard objects from the new cache whenever the available free memory runs too low.

To Summarize

  • If JVM heap size is too large, full garbage collection periods will be too long and the application might become unresponsive for seconds, degrading users experience.

  • If caches are too large and end up taking too much memory, the performance of the application will degrade and in the case of legacy cache it might even cause out-of-memory issues.