G1 garbage collector help
Junni Fan
junnifan at gmail.com
Sun Sep 25 09:07:42 PDT 2011
Hey list, we used to use CMS for our java server. Our memory activity
is very high, we use 4 CMS threads, and set initial fraction to 1 to
aggressively collect old gen memory. The hardware we use has 72G
memory and 8 core. The settings we use is:
java -Xms64G -Xmx64G -Xmn256M -verbose:gc -XX:+PrintGCDateStamps
-XX:+PrintGCDetails -XX:+UseCMSInitiatingOccupancyOnly
-XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=90 -XX:+AggressiveOpts
-XX:+UseParNewGC -XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=1 -XX:+CMSParallelRemarkEnabled
-XX:ParallelCMSThreads=4
But since CMS has the fragmentation problem the server occasionally
goes to full GC still.
So we are considerring to test our G1 collector. But appears that G1
falls back to full GC even quicker. I set the following G1 params:
-XX:+UnlockExperimentalVMOptions -XX:+UseG1GC
-XX:MaxGCPauseMillis=200 -XX:GCPauseIntervalMillis=300
-XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=8
It appears also that there are two marker threads and 8 refinement
threads running, which does not seem aggressive enough ...
Is there anyway that we can make G1 do more work? Like the option we
had for CMS ParallelCMSThreads? Also are there good reads on G1? Like
a comprehensive list of options that we can tune for G1 and what they
are?
Thanks a million!
More information about the hotspot-gc-use
mailing list