You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Michael Perrone (JIRA)" <ji...@apache.org> on 2015/05/19 18:32:08 UTC

[jira] [Comment Edited] (CASSANDRA-7486) Compare CMS and G1 pause times

    [ https://issues.apache.org/jira/browse/CASSANDRA-7486?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14550721#comment-14550721 ] 

Michael Perrone edited comment on CASSANDRA-7486 at 5/19/15 4:31 PM:
---------------------------------------------------------------------

I have done extensive load testing with G1GC with Java 1.7_80 and Cassandra 2.0.12.x versions with solr secondary indexes and 20GB max heap. On 8 core systems these options were the sweet spot for the test workload and worked out well in a production cluster, providing dramatic improvements in overall GC time and eliminating long CMS pauses that we could not tune out. I will try to attach some graphs/tables/metrics in another comment. 

{code}
JVM_OPTS="$JVM_OPTS -XX:+UseG1GC"
# set these to the number of cores
JVM_OPTS="$JVM_OPTS -XX:ConcGCThreads=8"
JVM_OPTS="$JVM_OPTS -XX:ParallelGCThreads=8"
JVM_OPTS="$JVM_OPTS -XX:SurvivorRatio=8"
# default is 10, this makes G1 slightly more aggressive
# by starting the marking cycle earlier
# in order to avoid evacuation failure (OOM)
JVM_OPTS="$JVM_OPTS -XX:G1ReservePercent=15"
# default is 45, we should start sooner.
# in a high write large heap (20GB) this was
# found to eliminate Old gen pauses
JVM_OPTS="$JVM_OPTS -XX:InitiatingHeapOccupancyPercent=25"
# default is 200 there is a tradeoff between latency
# and throughput. increase this to increase throughput
# at the cost of potential latency, up to 1000
JVM_OPTS="$JVM_OPTS -XX:MaxGCPauseMillis=500"
# use largest possible region size
# speeds up marking phase, tradeoff is efficiency
# comment out to let JVM decide the size
VM_OPTS="$JVM_OPTS -XX:G1HeapRegionSize=32"
{code}



was (Author: michael.perrone):
I have done extensive load testing with G1GC with Java 1.7_80 and Cassandra 2.0.12.x versions with solr secondary indexes and 20GB max heap. On 8 core systems these options were the sweet spot for the test workload and worked out well in a production cluster, providing dramatic improvements in overall GC time and eliminating long CMS pauses that we could not tune out. I will try to attach some graphs/tables/metrics in another comment. 

{code:yaml}
JVM_OPTS="$JVM_OPTS -XX:+UseG1GC"
# set these to the number of cores
JVM_OPTS="$JVM_OPTS -XX:ConcGCThreads=8"
JVM_OPTS="$JVM_OPTS -XX:ParallelGCThreads=8"
JVM_OPTS="$JVM_OPTS -XX:SurvivorRatio=8"
# default is 10, this makes G1 slightly more aggressive
# by starting the marking cycle earlier
# in order to avoid evacuation failure (OOM)
JVM_OPTS="$JVM_OPTS -XX:G1ReservePercent=15"
# default is 45, we should start sooner.
# in a high write large heap (20GB) this was
# found to eliminate Old gen pauses
JVM_OPTS="$JVM_OPTS -XX:InitiatingHeapOccupancyPercent=25"
# default is 200 there is a tradeoff between latency
# and throughput. increase this to increase throughput
# at the cost of potential latency, up to 1000
JVM_OPTS="$JVM_OPTS -XX:MaxGCPauseMillis=500"
# use largest possible region size
# speeds up marking phase, tradeoff is efficiency
# comment out to let JVM decide the size
VM_OPTS="$JVM_OPTS -XX:G1HeapRegionSize=32"
{code}


> Compare CMS and G1 pause times
> ------------------------------
>
>                 Key: CASSANDRA-7486
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7486
>             Project: Cassandra
>          Issue Type: Test
>          Components: Config
>            Reporter: Jonathan Ellis
>            Assignee: Shawn Kumar
>             Fix For: 2.1.x
>
>
> See http://www.slideshare.net/MonicaBeckwith/garbage-first-garbage-collector-g1-7486gc-migration-to-expectations-and-advanced-tuning and https://twitter.com/rbranson/status/482113561431265281
> May want to default 2.1 to G1.
> 2.1 is a different animal from 2.0 after moving most of memtables off heap.  Suspect this will help G1 even more than CMS.  (NB this is off by default but needs to be part of the test.)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)