Skip to content

AxonOps — AI-Native Control Plane for Open Source Data Platforms

Cassandra JVM Options

Configure JVM settings for optimal Cassandra performance.

JDK VersionFile
JDK 11+jvm11-server.options
JDK 17+jvm17-server.options

Location: /etc/cassandra/

Terminal window
# jvm11-server.options
# Set heap size (same for min and max)
-Xms16G
-Xmx16G
# Guidelines:
# - Max 31GB (compressed oops)
# - 1/4 of total RAM typically
# - Leave room for OS page cache
RAMHeap SizeNotes
8GB4GBDevelopment
32GB8GBSmall production
64GB16GBStandard production
128GB+31GBMax recommended
Terminal window
-XX:+UseG1GC
-XX:MaxGCPauseMillis=500
-XX:InitiatingHeapOccupancyPercent=70
-XX:ParallelGCThreads=16
-XX:ConcGCThreads=4
-XX:+ParallelRefProcEnabled
Terminal window
-XX:+UseZGC
-XX:SoftMaxHeapSize=28G
# -XX:+ZGenerational # JDK 21+ only, improves GC efficiency
Terminal window
# JDK 11+
-Xlog:gc*:file=/var/log/cassandra/gc.log:time,uptime:filecount=10,filesize=10M
Terminal window
# Metaspace
-XX:MetaspaceSize=128M
-XX:MaxMetaspaceSize=256M
# Direct memory (off-heap)
-XX:MaxDirectMemorySize=4G
# String deduplication
-XX:+UseStringDeduplication
Terminal window
# Disable explicit GC calls
-XX:+DisableExplicitGC
# Large pages (if enabled in OS)
-XX:+UseLargePages
# Thread stack size
-Xss256k
Terminal window
# Heap dump on OOM
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/var/lib/cassandra/
# Print GC details (JDK 8 style for reference)
# Deprecated in JDK 11+, use Xlog instead
/etc/cassandra/jvm11-server.options
# Heap
-Xms16G
-Xmx16G
# GC
-XX:+UseG1GC
-XX:MaxGCPauseMillis=500
-XX:InitiatingHeapOccupancyPercent=70
# GC Logging
-Xlog:gc*:file=/var/log/cassandra/gc.log:time,uptime:filecount=10,filesize=10M
# Metaspace
-XX:MetaspaceSize=128M
-XX:MaxMetaspaceSize=256M
# Error handling
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/var/lib/cassandra/
# Performance
-XX:+DisableExplicitGC
-XX:+UseStringDeduplication