The JRockit Performance Counters
- by Marcus Hirt
Every now and then I get a question regarding what the attributes in the PerfCounters dynamic MBean represent. Now, all the MBeans under the oracle.jrockit.management (bea.jrockit.management pre R28) domain are part of what we call JMXMAPI (the JRockit JMX based Management API), which is unsupported. Therefore there is no official documentation for the API.      I did however write a bit about JMXMAPI in my recent JRockit book, Oracle JRockit: The Definitive Guide. The information in the table below is from that book:                       Counter                        Description                                  java.cls.loadedClasses                        The number of classes loaded since the start of the JVM.                                  java.cls.unloadedClasses                        The number of classes unloaded since the start of the JVM.                                  java.property.java.class.path                        The class path of the JVM.                                  java.property.java.endorsed.dirs                        The endorsed dirs. See the Endorsed Standards Override Mechanism.                                  java.property.java.ext.dirs                        The ext dirs, which are searched for jars that should be automatically put on the classpath. See the Java documentation for java.ext.dirs.                                  java.property.java.home                        The root of the JDK or JRE installation.                                  java.property.java.library.path                        The library path used to find user libraries.                                  java.property.java.vm.version                        The JRockit version.                                  java.rt.vmArgs                        The list of VM arguments.                                  java.threads.daemon                        The number of running daemon threads.                                  java.threads.live                        The total number of running threads.                                  java.threads.livePeak                        The peak number of threads that has been running since JRockit was started.                                  java.threads.nonDaemon                        The number of non-daemon threads running.                                  java.threads.started                        The total number of threads started since the start of JRockit.                                  jrockit.gc.latest.heapSize                        The current heap size in bytes.                                  jrockit.gc.latest.nurserySize                        The current nursery size in bytes.                                  jrockit.gc.latest.oc.compaction.time                        How long, in ticks, the last compaction lasted. Reset to 0 if compaction is skipped.                                  jrockit.gc.latest.oc.heapUsedAfter                        Used heap at the end of the last OC, in bytes.                                  jrockit.gc.latest.oc.heapUsedBefore                        Used heap at the start of the last OC, in bytes.                                  jrockit.gc.latest.oc.number                        The number of OCs that have occurred so far.                                  jrockit.gc.latest.oc.sumOfPauses                        The paused time for the last OC, in ticks.                                  jrockit.gc.latest.oc.time                        The time the last OC took, in ticks.                                  jrockit.gc.latest.yc.sumOfPauses                        The paused time for the last YC, in ticks.                                  jrockit.gc.latest.yc.time                        The time the last YC took, in ticks.                                  jrockit.gc.max.oc.individualPause                        The longest OC pause so far, in ticks.                                  jrockit.gc.max.yc.individualPause                        The longest YC pause so far, in ticks.                                  jrockit.gc.total.oc.compaction.externalAborted                        Number of aborted external compactions so far.                                  jrockit.gc.total.oc.compaction.internalAborted                        Number of aborted internal compactions so far.                                  jrockit.gc.total.oc.compaction.internalSkipped                        Number of skipped internal compactions so far.                                  jrockit.gc.total.oc.compaction.time                        The total time spent doing compaction so far, in ticks.                                  jrockit.gc.total.oc.ompaction.externalSkipped                        Number of skipped external compactions so far.                                  jrockit.gc.total.oc.pauseTime                        The sum of all OC pause times so far, in ticks.                                  jrockit.gc.total.oc.time                        The total time spent doing OC so far, in ticks.                                  jrockit.gc.total.pageFaults                        The number of page faults that have occurred during GC so far.                                  jrockit.gc.total.yc.pauseTime                        The sum of all YC pause times, in ticks.                                  jrockit.gc.total.yc.promotedObjects                        The number of objects that all YCs have promoted.                                  jrockit.gc.total.yc.promotedSize                        The total number of bytes that all YCs have promoted, in bytes.                                  jrockit.gc.total.yc.time                        The total time spent doing YC, in ticks.                                  oracle.ci.jit.count                        The number of methods JIT compiled.                                  oracle.ci.jit.timeTotal                        The total time spent JIT compiling, in ticks.                                  oracle.ci.opt.count                        The number of methods optimized.                                  oracle.ci.opt.timeTotal                        The total time spent optimizing, in ticks.                                  oracle.rt.counterFrequency                        Used to convert ticks values to seconds.                       Note that many of these counters are excellent choices for attributes to plot in the Management Console. Also note that many values are in ticks – to convert them to seconds, divide by the value in the oracle.rt.counterFrequency counter.