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)