Hi Shawn, I also had CMS with tons of tuning options but still had once in a while bigger GC pause. After switching to JDK7 I tried G1GC with no other options and it runs perfekt. With CMS I saw that old and young generation where growing until they "had to do" a GC. This produces the sawtooth and also takes longer GC pause time. With G1GC the GC is more frequently and better timed, it is softer, more flexible. I just removed any old tuning and old GC and have only the G1GC option.
ulimit -c unlimited ulimit -l 256 ulimit -m unlimited ulimit -n 8192 ulimit -s unlimited ulimit -v unlimited JAVA_OPTS="-server -d64 -Xmx20g -Xms20g -XX:+UseG1GC -verbose:gc -XX:+PrintGCDateStamps -XX:+PrintGCDetails -Xloggc:gc.log" java version "1.7.0_07" Java(TM) SE Runtime Environment (build 1.7.0_07-b10) Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode) May be I have just luck with it, but for big heaps it works fine. Regards Bernd Am 06.06.2013 16:23, schrieb Shawn Heisey: > On 6/6/2013 3:50 AM, Bernd Fehling wrote: >> What helped me a lot was switching to G1GC. >> Faster, smoother, very little ripple, nearly no sawtooth. > > When I tried G1, it did indeed produce a better looking memory graph, > but it didn't do anything about my GC pauses. They were several seconds > with just CMS and NewRatio, and they actually seemed to get slightly > worse when I tried G1 instead. > > To solve the GC pause problem, I've had to switch back to CMS and tack > on several more tuning options, most of which are CMS-specific. I'm not > sure how to tune G1. Have you done any additional tuning? > > Thanks, > Shawn >