104 lines
4.1 KiB
Plaintext
104 lines
4.1 KiB
Plaintext
###########################################################################
|
|
# jvm11-server.options #
|
|
# #
|
|
# See jvm-server.options. This file is specific for Java 11 and newer. #
|
|
###########################################################################
|
|
|
|
#################
|
|
# 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
|
|
|
|
#
|
|
## 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=500
|
|
|
|
## 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/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
|