Enable GC logging by default (3.0 version) patch by Chris Lohfink; reviewed by aweisberg for CASSANDRA-10140
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3e45fa1a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3e45fa1a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3e45fa1a Branch: refs/heads/trunk Commit: 3e45fa1ab521bd50eb247f58daa2bfa76c6ab4e5 Parents: 2fd0c15 Author: Ariel Weisberg <[email protected]> Authored: Tue Dec 29 14:33:26 2015 -0500 Committer: Sylvain Lebresne <[email protected]> Committed: Tue Jan 5 18:01:29 2016 +0100 ---------------------------------------------------------------------- CHANGES.txt | 1 + NEWS.txt | 2 ++ conf/cassandra-env.ps1 | 3 +++ conf/cassandra-env.sh | 5 ++++- conf/jvm.options | 18 +++++++++--------- debian/patches/002cassandra_logdir_fix.dpatch | 18 +++++++++++++++--- 6 files changed, 34 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/3e45fa1a/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index 4b5610e..103ae05 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -11,6 +11,7 @@ * (Hadoop) Close Clusters and Sessions in Hadoop Input/Output classes (CASSANDRA-10837) * Fix sstableloader not working with upper case keyspace name (CASSANDRA-10806) Merged from 2.2: + * Enable GC logging by default (CASSANDRA-10140) * Optimize pending range computation (CASSANDRA-9258) * Skip commit log and saved cache directories in SSTable version startup check (CASSANDRA-10902) * drop/alter user should be case sensitive (CASSANDRA-10817) http://git-wip-us.apache.org/repos/asf/cassandra/blob/3e45fa1a/NEWS.txt ---------------------------------------------------------------------- diff --git a/NEWS.txt b/NEWS.txt index 8a03e14..26a83a9 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -32,6 +32,8 @@ Upgrading - Custom index implementation should be aware that the method Indexer::indexes() has been removed as its contract was misleading and all custom implementation should have almost surely returned true inconditionally for that method. + - GC logging is now enabled by default (you can disable it in the jvm.options + file if you prefer). 3.0 http://git-wip-us.apache.org/repos/asf/cassandra/blob/3e45fa1a/conf/cassandra-env.ps1 ---------------------------------------------------------------------- diff --git a/conf/cassandra-env.ps1 b/conf/cassandra-env.ps1 index a38429e..5eefb04 100644 --- a/conf/cassandra-env.ps1 +++ b/conf/cassandra-env.ps1 @@ -333,6 +333,9 @@ Function SetCassandraEnvironment ParseJVMInfo + #GC log path has to be defined here since it needs to find CASSANDRA_HOME + $env:JVM_OPTS="$env:JVM_OPTS -Xloggc:$env:CASSANDRA_HOME/logs/gc.log" + # Read user-defined JVM options from jvm.options file $content = Get-Content "$env:CASSANDRA_CONF\jvm.options" for ($i = 0; $i -lt $content.Count; $i++) http://git-wip-us.apache.org/repos/asf/cassandra/blob/3e45fa1a/conf/cassandra-env.sh ---------------------------------------------------------------------- diff --git a/conf/cassandra-env.sh b/conf/cassandra-env.sh index ef164e8..f322803 100644 --- a/conf/cassandra-env.sh +++ b/conf/cassandra-env.sh @@ -33,7 +33,7 @@ calculate_heap_sizes() Darwin) system_memory_in_bytes=`sysctl hw.memsize | awk '{print $2}'` system_memory_in_mb=`expr $system_memory_in_bytes / 1024 / 1024` - system_cpu_cores=`sysctl hw.ncpu | awk '{print $2}'` + ;; *) # assume reasonable defaults for e.g. a modern desktop or @@ -156,6 +156,9 @@ if [ "x$MALLOC_ARENA_MAX" = "x" ] ; then export MALLOC_ARENA_MAX=4 fi +#GC log path has to be defined here because it needs to access CASSANDRA_HOME +JVM_OPTS="$JVM_OPTS -Xloggc:${CASSANDRA_HOME}/logs/gc.log" + # Here we create the arguments that will get passed to the jvm when # starting cassandra. http://git-wip-us.apache.org/repos/asf/cassandra/blob/3e45fa1a/conf/jvm.options ---------------------------------------------------------------------- diff --git a/conf/jvm.options b/conf/jvm.options index c5d3d95..a7b3bd8 100644 --- a/conf/jvm.options +++ b/conf/jvm.options @@ -95,14 +95,14 @@ ### GC logging options -- uncomment to enable -#-XX:+PrintGCDetails -#-XX:+PrintGCDateStamps -#-XX:+PrintHeapAtGC -#-XX:+PrintTenuringDistribution -#-XX:+PrintGCApplicationStoppedTime -#-XX:+PrintPromotionFailure +-XX:+PrintGCDetails +-XX:+PrintGCDateStamps +-XX:+PrintHeapAtGC +-XX:+PrintTenuringDistribution +-XX:+PrintGCApplicationStoppedTime +-XX:+PrintPromotionFailure #-XX:PrintFLSStatistics=1 #-Xloggc:/var/log/cassandra/gc.log -#-XX:+UseGCLogFileRotation -#-XX:NumberOfGCLogFiles=10 -#-XX:GCLogFileSize=10M +-XX:+UseGCLogFileRotation +-XX:NumberOfGCLogFiles=10 +-XX:GCLogFileSize=10M http://git-wip-us.apache.org/repos/asf/cassandra/blob/3e45fa1a/debian/patches/002cassandra_logdir_fix.dpatch ---------------------------------------------------------------------- diff --git a/debian/patches/002cassandra_logdir_fix.dpatch b/debian/patches/002cassandra_logdir_fix.dpatch index 8836eb4..87387b9 100644 --- a/debian/patches/002cassandra_logdir_fix.dpatch +++ b/debian/patches/002cassandra_logdir_fix.dpatch @@ -6,9 +6,9 @@ @DPATCH@ diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' cassandra~/bin/cassandra cassandra/bin/cassandra ---- cassandra~/bin/cassandra 2014-09-15 19:42:28.000000000 -0500 -+++ cassandra/bin/cassandra 2014-09-15 21:15:15.627505503 -0500 -@@ -134,7 +134,7 @@ +--- cassandra~/bin/cassandra 2015-10-27 14:35:22.000000000 -0500 ++++ cassandra/bin/cassandra 2015-10-27 14:41:38.000000000 -0500 +@@ -139,7 +139,7 @@ props="$3" class="$4" cassandra_parms="-Dlogback.configurationFile=logback.xml" @@ -17,3 +17,15 @@ diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' cassandra_parms="$cassandra_parms -Dcassandra.storagedir=$cassandra_storagedir" if [ "x$pidpath" != "x" ]; then +diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' cassandra~/conf/cassandra-env.sh cassandra/conf/cassandra-env.sh +--- cassandra~/conf/cassandra-env.sh 2015-10-27 14:40:39.000000000 -0500 ++++ cassandra/conf/cassandra-env.sh 2015-10-27 14:42:40.647449856 -0500 +@@ -204,7 +204,7 @@ + esac + + #GC log path has to be defined here because it needs to access CASSANDRA_HOME +-JVM_OPTS="$JVM_OPTS -Xloggc:${CASSANDRA_HOME}/logs/gc.log" ++JVM_OPTS="$JVM_OPTS -Xloggc:/var/log/cassandra/gc.log" + + # Here we create the arguments that will get passed to the jvm when + # starting cassandra.
