Java virtual machine counters

(JVM) counters are used to monitor JVM performance. Except for the counters that are used for total, used, and free heap size, you can find the counters by using the Java virtual machine Profiler Interface (JVMPI). To use JVMPI, turn on the monitoring by setting the -XrunpmiJvmpiProfiler command line. See Enabling the Java virtual machine profiler data for more information.

Counter definitions

Name Key Description Version
FreeMemory jvmRuntimeModule.freeMemory The free memory in the JVM run time 3.5.5 and later
UsedMemory jvmRuntimeModule.usedMemory The used memory in the JVM run time 3.5.5 and later
HeapSize jvmRuntimeModule.totalMemory The total memory in the JVM run time 3.5.5 and later
UpTime jvmRuntimeModule.upTime The amount of time that the JVM is running 5.0
GCCount jvmRuntimeModule.numGcCalls The number of garbage collection calls. This counter is not available unless the -XrunpmiJvmpiProfiler option is set when starting the JVM. 4.0 and later
GCIntervalTime jvmRuntimeModule.avgTimeBetweenGcCalls The average garbage collection value in seconds between two garbage collections. This counter is not available unless the -XrunpmiJvmpiProfiler option is set when starting the JVM. 4.0 and later
GCTime jvmRuntimeModule.avgGcDuration The average duration of a garbage collection. This counter is not available unless the -XrunpmiJvmpiProfiler option is set when starting the JVM. 4.0 and later
WaitsForLockCount jvmRuntimeModule.numWaitsForLock The number of times that a thread waits for a lock. This counter is not available unless the -XrunpmiJvmpiProfiler option is set when starting the JVM. 4.0 and later
WaitForLockTime jvmRuntimeModule.avgTimeWaitForLock The average time that a thread waits for a lock. This counter is not available unless the -XrunpmiJvmpiProfiler option is set when starting the JVM. 4.0 and later
ObjectAllocateCount jvmRuntimeModule.numObjectsAllocated The number of objects that are allocated in the heap. This counter is not available unless the -XrunpmiJvmpiProfiler option is set when starting the JVM. 4.0 and later
ObjectMovedCount jvmRuntimeModule.numObjectsMoved The number of objects in the heap. This counter is not available unless the -XrunpmiJvmpiProfiler option is set when starting the JVM. 4.0 and later
ObjectFreedCount jvmRuntimeModule.numObjectsFreed The number of objects freed in the heap. This counter is not available unless the -XrunpmiJvmpiProfiler option is set when starting the JVM. 4.0 and later
ThreadStartedCount jvmRuntimeModule.numThreadsStarted The number of threads started. This counter is not available unless the -XrunpmiJvmpiProfiler option is set when starting the JVM. 4.0 and later
ThreadEndedCount jvmRuntimeModule.numThreadsDead The number of failed threads. This counter is not available unless the -XrunpmiJvmpiProfiler option is set when starting the JVM. 4.0 and later

Name Granularity Type Level Overhead
FreeMemory Per Java Virtual Machine (JVM) CountStatistic Extended Low
UsedMemory Per JVM CountStatistic Basic Low
HeapSize Per JVM BoundedRangeStatistic. The upperBound and lowerBound are not implemented for the Total memory counter. Basic High
UpTime Per JVM CountStatistic Basic Low
GCCount Per JVM CountStatistic All Max
GCIntervalTime Per JVM TimeStatistic All Max
GCTime Per JVM TimeStatistic All Max
WaitsForLockCount Per JVM CountStatistic All Max
WaitForLockTime Per JVM TimeStatistic All Max
ObjectAllocateCount Per JVM CountStatistic All Max
ObjectMovedCount Per JVM CountStatistic All Max
ObjectFreedCount Per JVM CountStatistic All Max
ThreadStartedCount Per JVM CountStatistic All Max
ThreadEndedCount Per JVM CountStatistic All Max