We want to share a recent disovery that we made when upgrading our platform from JDK6u21 to JDK6u23. There has been a change in Garbage Collection MXBean Counters that change the way we monitor Runtime Suspensions caused by GC Activations. Here are the details:

We run our dynaTrace Server using the Concurrent Mark Sweep GC Strategy (-XX:+UseConcMarkSweepGC).
In order to monitor GC Activations we use the MXBean that gives us information about the GC Collections in the different categories, e.g.: ParNew, Serial Old, ...
There is a good blog from Jon Masamitsu that explains the different Java GC Collectors.

Our experience showed that the CMS counter was only updated during Major GC's when the runtime was actually suspended. We therefore used this counter to monitor the number of Runtime Suspensions and went with the Serial Old GC Counter to monitor "normal" collections. This worked well for us.

We recently upgraded from JDK6u21 to JDK6u23 and noticed a big change in the counters. It now seems that the CMS counter is "correctly" updated with the number of CMS Collections - and not only Major GC runs that also suspend the runtime.

No CMS Collections in JDK6u21

CMS Collections in JDK6u23

We are in contact with Oracle (both through email and through the Oracle Forums) to get an explanation on this and what counters to use to get the number of runtime suspensions.

Thanks to Stefan Frandl, Test Automation Team Lead at dynaTrace, for providing this information.

Selected Topics

Not Logged In? Customers and AJAX Edition Users Login with your Community Account