posted 13 years ago
Hi
I have this application using the CMS (Concurrent-Mark-Sweep) garbage collector. The GC-logs shows minor collections just fine and Full GCs due to concurrent mode failure as well. However there are gaps in the logs where collection(s) have been made but not logged. Here is an example:
137672.630: [GC 137672.630: [ParNew: 72644K->1152K(76672K), 0.0420595 secs] 4081695K->4010203K(6050872K) icms_dc=5 , 0.0421852 secs] [Times: user=0.13 sys=0.00, real=0.03 secs]
Here the heap has been reduced from 4081695KB to 4010203KB and then 137685.134 - 137672.630 = 12,504 seconds later this is logged;
137685.134: [GC 137685.134: [ParNew: 69312K->4441K(76672K), 0.0310903 secs] 2441457K->2376586K(6050872K) icms_dc=5 , 0.0312227 secs] [Times: user=0.08 sys=0.00, real=0.03 secs]
The second GC is a reduction from 2441457 KB to 2376586 KB. Why don't I see any information regarding what happend with the 1.55GB of the heap in between those to collections? I assume that there has been a Full GC in between these log entries but it is not mentioned in the log. How come?
The JVM used is Hotspot 1.6.0_22 and here are the vm arguments:
-Xms5120M -Xmx7168M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode
-verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:MaxPermSize=512M
-XX:PermSize=512M -XX:+PrintGCApplicationConcurrentTime -XX:+PrintGCApplicationStoppedTime
Cheers
/Anders