Created
August 12, 2016 22:49
-
-
Save RussellSpitzer/fef1e482cffe01ebc856c96c19f2ee0d to your computer and use it in GitHub Desktop.
RelevantPortionofCassandra-env.sh
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
if [ "$JVM_VERSION" \< "1.8.0" ] ; then | |
### Start CMS GC Settings | |
# Used if Java version is not 1.8+, G1GC is used for Java 1.8+. | |
# some JVMs will fill up their heap when accessed via JMX, see CASSANDRA-6541 | |
JVM_OPTS="$JVM_OPTS -XX:+CMSClassUnloadingEnabled" | |
# CMS GC tuning options | |
JVM_OPTS="$JVM_OPTS -Xmn${HEAP_NEWSIZE}" | |
JVM_OPTS="$JVM_OPTS -XX:+UseParNewGC" | |
JVM_OPTS="$JVM_OPTS -XX:+UseConcMarkSweepGC" | |
JVM_OPTS="$JVM_OPTS -XX:+CMSParallelRemarkEnabled" | |
JVM_OPTS="$JVM_OPTS -XX:SurvivorRatio=8" | |
JVM_OPTS="$JVM_OPTS -XX:MaxTenuringThreshold=1" | |
JVM_OPTS="$JVM_OPTS -XX:CMSInitiatingOccupancyFraction=75" | |
JVM_OPTS="$JVM_OPTS -XX:+UseCMSInitiatingOccupancyOnly" | |
JVM_OPTS="$JVM_OPTS -XX:CMSWaitDuration=10000" | |
# note: bash evals '1.7.x' as > '1.7' so this is really a >= 1.7 jvm check | |
if { [ "$JVM_VERSION" \> "1.7" ] && [ "$JVM_VERSION" \< "1.8.0" ] && [ "$JVM_PATCH_VERSION" -ge "60" ]; } || [ "$JVM_VERSION" \> "1.8" ] ; then | |
JVM_OPTS="$JVM_OPTS -XX:+CMSParallelInitialMarkEnabled -XX:+CMSEdenChunksRecordAlways -XX:CMSWaitDuration=10000" | |
fi | |
if [ "$JVM_ARCH" = "64-Bit" ] ; then | |
JVM_OPTS="$JVM_OPTS -XX:+UseCondCardMark" | |
fi | |
### End CMS GC Settings | |
else # Java 1.8+ | |
### Start G1GC Settings | |
# Used when Java version is 1.8+ | |
# G1GC GC tuning options | |
# Use the Hotspot garbage-first collector. | |
JVM_OPTS="$JVM_OPTS -XX:+UseG1GC" | |
# Have the JVM do less remembered set work during STW, instead | |
# preferring concurrent GC. Reduces p99.9 latency. | |
JVM_OPTS="$JVM_OPTS -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. | |
JVM_OPTS="$JVM_OPTS -XX:MaxGCPauseMillis=500" | |
# The JVM maximum is 8 PGC threads and 1/4 of that for ConcGC. | |
# Machines with > 10 cores may need additional threads. Increase to <= full cores. | |
#JVM_OPTS="$JVM_OPTS -XX:ParallelGCThreads=16" | |
#JVM_OPTS="$JVM_OPTS -XX:ConcGCThreads=16" | |
# Save CPU time on large (>= 16GB) heaps by delaying region scanning | |
# until the heap is 70% full. The default in Hotspot 8u40 is 40%. | |
#JVM_OPTS="$JVM_OPTS -XX:InitiatingHeapOccupancyPercent=70" | |
### End G1GC Settings | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment