You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "graham sanderson (JIRA)" <ji...@apache.org> on 2014/06/21 18:04:24 UTC

[jira] [Created] (CASSANDRA-7432) Add new CMS GC flags to cassandra_env.sh for JVM later than 1.7.0_60

graham sanderson created CASSANDRA-7432:
-------------------------------------------

             Summary: Add new CMS GC flags to cassandra_env.sh for JVM later than 1.7.0_60
                 Key: CASSANDRA-7432
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7432
             Project: Cassandra
          Issue Type: Improvement
          Components: Packaging
            Reporter: graham sanderson


The new flags in question are as follows:

{code}
-XX:+CMSParallelInitialMarkEnabled
-XX:+CMSEdenChunksRecordAlways
{code}

Given we already have

{code}
JVM_OPTS="$JVM_OPTS -XX:+UseParNewGC" 
JVM_OPTS="$JVM_OPTS -XX:+UseConcMarkSweepGC" 
JVM_OPTS="$JVM_OPTS -XX:+CMSParallelRemarkEnabled" 
JVM_OPTS="$JVM_OPTS -XX:+UseTLAB"
if [ "$JVM_ARCH" = "64-Bit" ] ; then
    JVM_OPTS="$JVM_OPTS -XX:+UseCondCardMark"
fi
{code}

The assumption would be that people are at least running on large number CPU cores/threads

I would therefore recommend defaulting these flags if available - the only two possible downsides for {{+CMSEdenChunksRecordAlways}}:

1) There is a new very short (probably un-contended) lock in the "slow" (non TLAB) eden allocation path with {{+CMSEdenChunksRecordAlways}}. I haven't detected this timing wise - this is the "slow" path after all
2) If you are running with {{-XX:-UseCMSCompactAtFullCollection}} (not the default) *and* you call {{System.gc()}} then  {{+CMSEdenChunksRecordAlways}} will expose you to a possible seg fault 
[http://bugs.java.com/bugdatabase/view_bug.do?bug_id=8021809]



--
This message was sent by Atlassian JIRA
(v6.2#6252)