[ https://issues.apache.org/jira/browse/CASSANDRA-7486?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14484318#comment-14484318 ]
Albert P Tobey commented on CASSANDRA-7486: ------------------------------------------- So far my testing of read workloads matches my experience with writes. An 8GB heap with generic G1GC settings is "good" for more workloads out of the box than haphazardly tuned CMS can be. I've been testing on a mix of Oracle/OpenJDK and JDK7/8 and the results are fairly consistent across the board with the exception that performance is a tad higher (~5%) on JDK8 than JDK7 (with G1GC - I have not tested CMS much on JDK8). These parameters get better throughput than CMS out of the box with significantly improved consistency in the max and p99.9 latency. -Xmx8G -Xms8G -XX:+UseG1GC If throughput is more critical than latency, the following will get a few % more throughput at the cost of potentially higher max pause times: -Xmx8G -Xms8G -XX:+UseG1GC -XX:MaxGCPauseMillis=2000 -XX:InitiatingHeapOccupancyPercent=75 My recommendation is to document the last two options in cassandra-env.sh but leave them disabled/commented out for end-users to fiddle with. Other knobs for G1 didn't make a statistically measurable difference in my observations. G1 scales particularly well with heap size on huge machines. 8 to 16GB doesn't seem to make a big difference, matching what [~rbranson] saw. At 24GB I started seeing about 8-10% throughput increase with little variance in pause times. IMO the simple G1 configuration should be the default for large heaps. It's simple and provides consistent latency. Because it uses heuristics to determine the eden size and scanning schedule, it will adapts well to diverse environments without tweaking. Heap sizes under 8GB should continue to use CMS or even experiment with serial collectors (e.g. Raspberry Pi, t2.micro, vagrant). If there is interest, I will write up a patch for cassandra-env.sh to make the auto-detection code pick G1GC at >= 6GB heap and CMS for < 6GB. > 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.5 > > > 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)