Description
The new flags in question are as follows:
-XX:+CMSParallelInitialMarkEnabled -XX:+CMSEdenChunksRecordAlways
Given we already have
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
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: (see
http://bugs.java.com/bugdatabase/view_bug.do?bug_id=8021809)
Attachments
Attachments
Issue Links
- is related to
-
CASSANDRA-7714 Add new CMS GC flags to Windows startup scripts for JVM later than 1.7.0_60
- Resolved