When using Azul Platform Prime for Cassandra you don't need to spend time in tuning the JVM Garbage Collection parameters.
Here a quick overview for switching from other JVMs to Azul Platform Prime on a Cassandra node:
The following documentation relies on Azul Platform Prime versions released after they year 2019 as since then the ZST component is not needed any more which was required in earlier versions. If you deploy a new Cassandra installation make sure that only the Azul Platform Prime JDK package (RPM/DEB package zing-jdk1.8.0) is installed and not ZST component (RPM/DEB package zing-zst). ZST is now only an optional tuning for Azul Platform Prime and new installations should start without it as a wrong configuration of ZST can reduce performance with Java applications using much native memory outside of the Java heap as Cassandra does.
First, after stopping the Cassandra service on the node, install Azul Platform Prime. Then change the JAVA_HOME setting for Cassandra in its configuration file to the newly installed JDK, here an example for Java 8:
That's all. You don't need to change any other JVM parameter in the cassandra-env.sh configuration. Azul Platform Prime is ignoring non-Azul -XX parameters which you might have added before to tune other GC implementations.
After restarting the Cassandra node you can check with the following command if the switch to Azul Platform Prime was successful and the java command used is actually the correct one and not a different JVM. The Azul Platform Prime java process returns "Zing 64-Bit" as version information:
jcmd JAVAPID VM.version
With JAVAPID the process ID of the java command as listed by just running "jcmd" without parameters.
For production systems, the following change is recommended in addition:
- Disable the Cassandra GCInspector log messages as it might report long running GC phases which are of no concern when using Azul Platform Prime as those logged times are phases of the GC which are run in parallel to the application and don't pause the application when using Azul Platform Prime. The log messages written to the Cassandra system.log are of the following pattern:
INFO [Service Thread] DATE GCInspector.java:284 - GPGC New GC in 300ms. GenPauseless
To disable them, add the following line to cassandra_install_location/conf/logback.xml:
<logger name="org.apache.cassandra.service.GCInspector" level="ERROR"/>
If you have further questions about Azul Platform Prime configuration, please ask Azul Support.