| ########################################################################### |
| # jvm11-server.options # |
| # # |
| # See jvm-server.options. This file is specific for Java 11 and newer. # |
| ########################################################################### |
| |
| |
| ######################## |
| # GENERAL JVM SETTINGS # |
| ######################## |
| |
| # Disable biased locking as it does not benefit Cassandra. |
| -XX:-UseBiasedLocking |
| |
| |
| ################# |
| # GC SETTINGS # |
| ################# |
| |
| |
| |
| ### CMS Settings |
| ##-XX:+UseConcMarkSweepGC |
| ##-XX:+CMSParallelRemarkEnabled |
| ##-XX:SurvivorRatio=8 |
| ##-XX:MaxTenuringThreshold=1 |
| ##-XX:CMSInitiatingOccupancyFraction=75 |
| ##-XX:+UseCMSInitiatingOccupancyOnly |
| ##-XX:CMSWaitDuration=10000 |
| ##-XX:+CMSParallelInitialMarkEnabled |
| ##-XX:+CMSEdenChunksRecordAlways |
| ## some JVMs will fill up their heap when accessed via JMX, see CASSANDRA-6541 |
| ##-XX:+CMSClassUnloadingEnabled |
| |
| |
| |
| ### G1 Settings |
| ## Use the Hotspot garbage-first collector. |
| -XX:+UseG1GC |
| -XX:+ParallelRefProcEnabled |
| -XX:MaxTenuringThreshold=1 |
| -XX:G1HeapRegionSize=16m |
| |
| # |
| ## Have the JVM do less remembered set work during STW, instead |
| ## preferring concurrent GC. Reduces p99.9 latency. |
| -XX:G1RSetUpdatingPauseTimePercent=5 |
| # |
| ## Main G1GC tunable: lowering the pause target will lower throughput and vise versa. |
| ## 200ms is the JVM default and lowest viable setting |
| ## 1000ms increases throughput. Keep it smaller than the timeouts in cassandra.yaml. |
| -XX:MaxGCPauseMillis=300 |
| |
| ## Optional G1 Settings |
| # Save CPU time on large (>= 16GB) heaps by delaying region scanning |
| # until the heap is 70% full. The default in Hotspot 8u40 is 40%. |
| -XX:InitiatingHeapOccupancyPercent=70 |
| |
| # For systems with > 8 cores, the default ParallelGCThreads is 5/8 the number of logical cores. |
| # Otherwise equal to the number of cores when 8 or less. |
| # Machines with > 10 cores should try setting these to <= full cores. |
| #-XX:ParallelGCThreads=16 |
| # By default, ConcGCThreads is 1/4 of ParallelGCThreads. |
| # Setting both to the same value can reduce STW durations. |
| #-XX:ConcGCThreads=16 |
| |
| |
| ### JPMS |
| |
| -Djdk.attach.allowAttachSelf=true |
| --add-exports java.base/jdk.internal.misc=ALL-UNNAMED |
| --add-exports java.base/jdk.internal.ref=ALL-UNNAMED |
| --add-exports java.base/jdk.internal.util=ALL-UNNAMED |
| --add-exports java.base/sun.nio.ch=ALL-UNNAMED |
| --add-exports java.management.rmi/com.sun.jmx.remote.internal.rmi=ALL-UNNAMED |
| --add-exports java.rmi/sun.rmi.registry=ALL-UNNAMED |
| --add-exports java.rmi/sun.rmi.server=ALL-UNNAMED |
| --add-exports java.sql/java.sql=ALL-UNNAMED |
| |
| --add-opens java.base/java.lang.module=ALL-UNNAMED |
| --add-opens java.base/jdk.internal.loader=ALL-UNNAMED |
| --add-opens java.base/jdk.internal.ref=ALL-UNNAMED |
| --add-opens java.base/jdk.internal.reflect=ALL-UNNAMED |
| --add-opens java.base/jdk.internal.math=ALL-UNNAMED |
| --add-opens java.base/jdk.internal.module=ALL-UNNAMED |
| --add-opens java.base/jdk.internal.util.jar=ALL-UNNAMED |
| --add-opens jdk.management/com.sun.management.internal=ALL-UNNAMED |
| |
| |
| ### GC logging options -- uncomment to enable |
| |
| # Java 11 (and newer) GC logging options: |
| # See description of https://bugs.openjdk.java.net/browse/JDK-8046148 for details about the syntax |
| # The following is the equivalent to -XX:+PrintGCDetails -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=10M |
| #-Xlog:gc=info,heap*=trace,age*=debug,safepoint=info,promotion*=trace:file=/var/log/cassandra/gc.log:time,uptime,pid,tid,level:filecount=10,filesize=10485760 |
| |
| # Notes for Java 8 migration: |
| # |
| # -XX:+PrintGCDetails maps to -Xlog:gc*:... - i.e. add a '*' after "gc" |
| # -XX:+PrintGCDateStamps maps to decorator 'time' |
| # |
| # -XX:+PrintHeapAtGC maps to 'heap' with level 'trace' |
| # -XX:+PrintTenuringDistribution maps to 'age' with level 'debug' |
| # -XX:+PrintGCApplicationStoppedTime maps to 'safepoint' with level 'info' |
| # -XX:+PrintPromotionFailure maps to 'promotion' with level 'trace' |
| # -XX:PrintFLSStatistics=1 maps to 'freelist' with level 'trace' |
| |
| ### Netty Options |
| |
| # On Java >= 9 Netty requires the io.netty.tryReflectionSetAccessible system property to be set to true to enable |
| # creation of direct buffers using Unsafe. Without it, this falls back to ByteBuffer.allocateDirect which has |
| # inferior performance and risks exceeding MaxDirectMemory |
| -Dio.netty.tryReflectionSetAccessible=true |
| |
| # The newline in the end of file is intentional |