mirror of https://github.com/apache/cassandra
148 lines
5.8 KiB
Plaintext
148 lines
5.8 KiB
Plaintext
#
|
|
# Licensed to the Apache Software Foundation (ASF) under one
|
|
# or more contributor license agreements. See the NOTICE file
|
|
# distributed with this work for additional information
|
|
# regarding copyright ownership. The ASF licenses this file
|
|
# to you under the Apache License, Version 2.0 (the
|
|
# "License"); you may not use this file except in compliance
|
|
# with the License. You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
#
|
|
#
|
|
###########################################################################
|
|
# 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
|
|
|
|
# Young generation size
|
|
# The main trade-off for the young generation is that the larger it is, the longer GC pause
|
|
# times will be. The smaller it is, the more expensive GC will be (usually).
|
|
#
|
|
# If left unset MAX_HEAP_SIZE and HEAP_NEWSIZE in cassandra-env.sh take precedence.
|
|
#-Xmn800M
|
|
|
|
|
|
### G1 Settings
|
|
## Use the Hotspot garbage-first collector.
|
|
-XX:+UseG1GC
|
|
-XX:+ParallelRefProcEnabled
|
|
-XX:MaxTenuringThreshold=2
|
|
-XX:G1HeapRegionSize=16m
|
|
|
|
# Floor the young generation size to 50% of the heap size
|
|
-XX:+UnlockExperimentalVMOptions
|
|
-XX:G1NewSizePercent=50
|
|
|
|
# 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.
|
|
# By default, ConcGCThreads is 1/4 of ParallelGCThreads.
|
|
# Setting both to the same value can reduce STW durations.
|
|
# When leaving both unset then cassandra-env.sh will set them both to the number of your cores.
|
|
#-XX:ParallelGCThreads=16
|
|
#-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
|
|
|
|
# Revert changes in defaults introduced in https://netty.io/news/2022/03/10/4-1-75-Final.html
|
|
-Dio.netty.allocator.useCacheForAllThreads=true
|
|
-Dio.netty.allocator.maxOrder=11
|
|
|
|
# The newline in the end of file is intentional
|