Repository: cassandra Updated Branches: refs/heads/trunk 691627bb2 -> 869bdabf4
Move static JVM options to jvm.options file Patch by pmotta; reviewed by jmckenzie for CASSANDRA-10494 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/869bdabf Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/869bdabf Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/869bdabf Branch: refs/heads/trunk Commit: 869bdabf424df9f95651f4553b5b358919d0e799 Parents: 691627b Author: Paulo Motta <[email protected]> Authored: Thu Dec 24 21:13:58 2015 -0200 Committer: Joshua McKenzie <[email protected]> Committed: Mon Jan 4 14:17:00 2016 -0500 ---------------------------------------------------------------------- CHANGES.txt | 1 + NEWS.txt | 1 + conf/cassandra-env.ps1 | 45 ---------------- conf/cassandra-env.sh | 45 ---------------- conf/jvm.options | 127 ++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 129 insertions(+), 90 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/869bdabf/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index cb3630f..9c3a50f 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,5 +1,6 @@ 3.2 * Add requireAuthorization method to IAuthorizer (CASSANDRA-10852) + * Move static JVM options to conf/jvm.options file (CASSANDRA-10494) * Fix CassandraVersion to accept x.y version string (CASSANDRA-10931) * Add forceUserDefinedCleanup to allow more flexible cleanup (CASSANDRA-10708) * (cqlsh) allow setting TTL with COPY (CASSANDRA-9494) http://git-wip-us.apache.org/repos/asf/cassandra/blob/869bdabf/NEWS.txt ---------------------------------------------------------------------- diff --git a/NEWS.txt b/NEWS.txt index 9464637..33fef1f 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -29,6 +29,7 @@ Upgrading --------- - The compression ratio metrics computation has been modified to be more accurate. - Running Cassandra as root is prevented by default. + - JVM options are moved from cassandra-env.(sh|ps1) to jvm.options file 3.1 http://git-wip-us.apache.org/repos/asf/cassandra/blob/869bdabf/conf/cassandra-env.ps1 ---------------------------------------------------------------------- diff --git a/conf/cassandra-env.ps1 b/conf/cassandra-env.ps1 index a38429e..0326199 100644 --- a/conf/cassandra-env.ps1 +++ b/conf/cassandra-env.ps1 @@ -416,10 +416,6 @@ Function SetCassandraEnvironment exit } - # enable assertions. disabling this in production will give a modest - # performance benefit (around 5%). - $env:JVM_OPTS = "$env:JVM_OPTS -ea" - # Specifies the default port over which Cassandra will be available for # JMX connections. $JMX_PORT="7199" @@ -427,50 +423,11 @@ Function SetCassandraEnvironment # store in env to check if it's avail in verification $env:JMX_PORT=$JMX_PORT - # enable thread priorities, primarily so we can give periodic tasks - # a lower priority to avoid interfering with client workload - $env:JVM_OPTS="$env:JVM_OPTS -XX:+UseThreadPriorities" - # allows lowering thread priority without being root on linux - probably - # not necessary on Windows but doesn't harm anything. - # see http://tech.stolsvik.com/2010/01/linux-java-thread-priorities-workar - $env:JVM_OPTS="$env:JVM_OPTS -XX:ThreadPriorityPolicy=42" - - $env:JVM_OPTS="$env:JVM_OPTS -XX:+HeapDumpOnOutOfMemoryError" - - # Per-thread stack size. - $env:JVM_OPTS="$env:JVM_OPTS -Xss256k" - - # Larger interned string table, for gossip's benefit (CASSANDRA-6410) - $env:JVM_OPTS="$env:JVM_OPTS -XX:StringTableSize=1000003" - - # Make sure all memory is faulted and zeroed on startup. - # This helps prevent soft faults in containers and makes - # transparent hugepage allocation more effective. - #$env:JVM_OPTS="$env:JVM_OPTS -XX:+AlwaysPreTouch" - - # Biased locking does not benefit Cassandra. - $env:JVM_OPTS="$env:JVM_OPTS -XX:-UseBiasedLocking" - - # Enable thread-local allocation blocks and allow the JVM to automatically - # resize them at runtime. - $env:JVM_OPTS="$env:JVM_OPTS -XX:+UseTLAB -XX:+ResizeTLAB" - - # http://www.evanjones.ca/jvm-mmap-pause.html - $env:JVM_OPTS="$env:JVM_OPTS -XX:+PerfDisableSharedMem" - # Configure the following for JEMallocAllocator and if jemalloc is not available in the system # library path. # set LD_LIBRARY_PATH=<JEMALLOC_HOME>/lib/ # $env:JVM_OPTS="$env:JVM_OPTS -Djava.library.path=<JEMALLOC_HOME>/lib/" - # uncomment to have Cassandra JVM listen for remote debuggers/profilers on port 1414 - # $env:JVM_OPTS="$env:JVM_OPTS -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=1414" - - # Prefer binding to IPv4 network intefaces (when net.ipv6.bindv6only=1). See - # http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6342561 (short version: - # comment out this entry to enable IPv6 support). - $env:JVM_OPTS="$env:JVM_OPTS -Djava.net.preferIPv4Stack=true" - # jmx: metrics and administration interface # # add this if you're having trouble connecting: @@ -492,6 +449,4 @@ Function SetCassandraEnvironment $env:JVM_OPTS="$env:JVM_OPTS -Dcassandra.jmx.local.port=$JMX_PORT -XX:+DisableExplicitGC" $env:JVM_OPTS="$env:JVM_OPTS $env:JVM_EXTRA_OPTS" - - #$env:JVM_OPTS="$env:JVM_OPTS -XX:+UnlockCommercialFeatures -XX:+FlightRecorder" } http://git-wip-us.apache.org/repos/asf/cassandra/blob/869bdabf/conf/cassandra-env.sh ---------------------------------------------------------------------- diff --git a/conf/cassandra-env.sh b/conf/cassandra-env.sh index ef164e8..477a4f3 100644 --- a/conf/cassandra-env.sh +++ b/conf/cassandra-env.sh @@ -200,62 +200,17 @@ if [ "$JVM_ARCH" = "64-Bit" ] && [ $USING_CMS -eq 0 ]; then JVM_OPTS="$JVM_OPTS -XX:+UseCondCardMark" fi -# enable assertions. disabling this in production will give a modest -# performance benefit (around 5%). -JVM_OPTS="$JVM_OPTS -ea" - -# Per-thread stack size. -JVM_OPTS="$JVM_OPTS -Xss256k" - -# Make sure all memory is faulted and zeroed on startup. -# This helps prevent soft faults in containers and makes -# transparent hugepage allocation more effective. -JVM_OPTS="$JVM_OPTS -XX:+AlwaysPreTouch" - -# Biased locking does not benefit Cassandra. -JVM_OPTS="$JVM_OPTS -XX:-UseBiasedLocking" - -# Larger interned string table, for gossip's benefit (CASSANDRA-6410) -JVM_OPTS="$JVM_OPTS -XX:StringTableSize=1000003" - -# Enable thread-local allocation blocks and allow the JVM to automatically -# resize them at runtime. -JVM_OPTS="$JVM_OPTS -XX:+UseTLAB -XX:+ResizeTLAB" - -# http://www.evanjones.ca/jvm-mmap-pause.html -JVM_OPTS="$JVM_OPTS -XX:+PerfDisableSharedMem" - # provides hints to the JIT compiler JVM_OPTS="$JVM_OPTS -XX:CompileCommandFile=$CASSANDRA_CONF/hotspot_compiler" # add the jamm javaagent JVM_OPTS="$JVM_OPTS -javaagent:$CASSANDRA_HOME/lib/jamm-0.3.0.jar" -# enable thread priorities, primarily so we can give periodic tasks -# a lower priority to avoid interfering with client workload -JVM_OPTS="$JVM_OPTS -XX:+UseThreadPriorities" -# allows lowering thread priority without being root. see -# http://tech.stolsvik.com/2010/01/linux-java-thread-priorities-workaround.html -JVM_OPTS="$JVM_OPTS -XX:ThreadPriorityPolicy=42" - # set jvm HeapDumpPath with CASSANDRA_HEAPDUMP_DIR -JVM_OPTS="$JVM_OPTS -XX:+HeapDumpOnOutOfMemoryError" if [ "x$CASSANDRA_HEAPDUMP_DIR" != "x" ]; then JVM_OPTS="$JVM_OPTS -XX:HeapDumpPath=$CASSANDRA_HEAPDUMP_DIR/cassandra-`date +%s`-pid$$.hprof" fi -# uncomment to have Cassandra JVM listen for remote debuggers/profilers on port 1414 -# JVM_OPTS="$JVM_OPTS -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=1414" - -# uncomment to have Cassandra JVM log internal method compilation (developers only) -# JVM_OPTS="$JVM_OPTS -XX:+UnlockDiagnosticVMOptions -XX:+LogCompilation" -# JVM_OPTS="$JVM_OPTS -XX:+UnlockCommercialFeatures -XX:+FlightRecorder" - -# Prefer binding to IPv4 network intefaces (when net.ipv6.bindv6only=1). See -# http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6342561 (short version: -# comment out this entry to enable IPv6 support). -JVM_OPTS="$JVM_OPTS -Djava.net.preferIPv4Stack=true" - # jmx: metrics and administration interface # # add this if you're having trouble connecting: http://git-wip-us.apache.org/repos/asf/cassandra/blob/869bdabf/conf/jvm.options ---------------------------------------------------------------------- diff --git a/conf/jvm.options b/conf/jvm.options index c5d3d95..ad0edb0 100644 --- a/conf/jvm.options +++ b/conf/jvm.options @@ -8,6 +8,133 @@ # - dynamic flags will be appended to these on cassandra-env # ########################################################################### +###################### +# STARTUP PARAMETERS # +###################### + +# Uncomment any of the following properties to enable specific startup parameters + +# In a multi-instance deployment, multiple Cassandra instances will independently assume that all +# CPU processors are available to it. This setting allows you to specify a smaller set of processors +# and perhaps have affinity. +#-Dcassandra.available_processors=number_of_processors + +# The directory location of the cassandra.yaml file. +#-Dcassandra.config=directory + +# Sets the initial partitioner token for a node the first time the node is started. +#-Dcassandra.initial_token=token + +# Set to false to start Cassandra on a node but not have the node join the cluster. +#-Dcassandra.join_ring=true|false + +# Set to false to clear all gossip state for the node on restart. Use when you have changed node +# information in cassandra.yaml (such as listen_address). +#-Dcassandra.load_ring_state=true|false + +# Enable pluggable metrics reporter. See Pluggable metrics reporting in Cassandra 2.0.2. +#-Dcassandra.metricsReporterConfigFile=file + +# Set the port on which the CQL native transport listens for clients. (Default: 9042) +#-Dcassandra.native_transport_port=port + +# Overrides the partitioner. (Default: org.apache.cassandra.dht.Murmur3Partitioner) +#-Dcassandra.partitioner=partitioner + +# To replace a node that has died, restart a new node in its place specifying the address of the +# dead node. The new node must not have any data in its data directory, that is, it must be in the +# same state as before bootstrapping. +#-Dcassandra.replace_address=listen_address or broadcast_address of dead node + +# Allow restoring specific tables from an archived commit log. +#-Dcassandra.replayList=table + +# Allows overriding of the default RING_DELAY (1000ms), which is the amount of time a node waits +# before joining the ring. +#-Dcassandra.ring_delay_ms=ms + +# Set the port for the Thrift RPC service, which is used for client connections. (Default: 9160) +#-Dcassandra.rpc_port=port + +# Set the SSL port for encrypted communication. (Default: 7001) +#-Dcassandra.ssl_storage_port=port + +# Enable or disable the native transport server. See start_native_transport in cassandra.yaml. +# cassandra.start_native_transport=true|false + +# Enable or disable the Thrift RPC server. (Default: true) +#-Dcassandra.start_rpc=true/false + +# Set the port for inter-node communication. (Default: 7000) +#-Dcassandra.storage_port=port + +# Set the default location for the trigger JARs. (Default: conf/triggers) +#-Dcassandra.triggers_dir=directory + +# For testing new compaction and compression strategies. It allows you to experiment with different +# strategies and benchmark write performance differences without affecting the production workload. +#-Dcassandra.write_survey=true + +######################## +# GENERAL JVM SETTINGS # +######################## + +# enable assertions. disabling this in production will give a modest +# performance benefit (around 5%). +-ea + +# enable thread priorities, primarily so we can give periodic tasks +# a lower priority to avoid interfering with client workload +-XX:+UseThreadPriorities + +# allows lowering thread priority without being root on linux - probably +# not necessary on Windows but doesn't harm anything. +# see http://tech.stolsvik.com/2010/01/linux-java-thread-priorities-workar +-XX:ThreadPriorityPolicy=42 + +# Enable heap-dump if there's an OOM +-XX:+HeapDumpOnOutOfMemoryError + +# Per-thread stack size. +-Xss256k + +# Larger interned string table, for gossip's benefit (CASSANDRA-6410) +-XX:StringTableSize=1000003 + +# Make sure all memory is faulted and zeroed on startup. +# This helps prevent soft faults in containers and makes +# transparent hugepage allocation more effective. +-XX:+AlwaysPreTouch + +# Disable biased locking as it does not benefit Cassandra. +-XX:-UseBiasedLocking + +# Enable thread-local allocation blocks and allow the JVM to automatically +# resize them at runtime. +-XX:+UseTLAB +-XX:+ResizeTLAB + +# http://www.evanjones.ca/jvm-mmap-pause.html +-XX:+PerfDisableSharedMem + +# Prefer binding to IPv4 network intefaces (when net.ipv6.bindv6only=1). See +# http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6342561 (short version: +# comment out this entry to enable IPv6 support). +-Djava.net.preferIPv4Stack=true + +### Debug options + +# uncomment to enable flight recorder +#-XX:+UnlockCommercialFeatures +#-XX:+FlightRecorder + +# uncomment to have Cassandra JVM listen for remote debuggers/profilers on port 1414 +#-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=1414 + +# uncomment to have Cassandra JVM log internal method compilation (developers only) +#-XX:+UnlockDiagnosticVMOptions +#-XX:+LogCompilation + ################# # HEAP SETTINGS # #################
