Posted by matormo
on February 11, 2009 at 4:42 AM PST
I have a high demanding application running under JDK 1.5.0_16, 64bits. The heap is set to 4G for the young and about 10G for the old generation. Survivor ratio is set to 8.
Low pauses are more important than throughput for this application, so I'm using the CMS collector. In normal load, young collectios occur each 2 minutes and their pauses range from 500 ms to 1.2 seconds, usally around 0.8 seconds. Full collections take place each hour or hour and a half, with pauses of about 400 ms (just seen a very rare exception of 7 seconds!)
Well, my question is, regardless of that 7 seconds pause exception, why I'm having YGC pauses longer than FGC ones?
These are the parameters to the JVM:
-Xloggc:/var/log/tomcat-5.5/gc.log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -XX:+PrintGCApplicationConcurrentTime -XX:+PrintHeapAtGC -XX:+DisableExplicitGC -XX:CMSInitiatingOccupancyFraction=70 -XX:+UseCMSCompactAtFullCollection -XX:+UseParNewGC -XX:MaxPermSize=256M -XX:PermSize=256M -XX:+UseConcMarkSweepGC -XX:MaxNewSize=4G -XX:NewSize=4G -XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=90 -XX:MaxTenuringThreshold=10'
Many thanks in advance.