The Java Virtual Machine (JVM) counters are used to monitor JVM performance. Except for the counters 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, you must turn on the monitoring by setting the -XrunpmiJvmpiProfiler command line. See Enabling Java Virtual Machine Profiler Interface data reporting.
Note: With the instrumentation level set to anything other than MAX, the values may be less accurate for TimeStatistics and CountStatistics (and in the case of CountStatistics, such as numConnectionHandles, can even be negative). This is due to counters not being synchronized. Synchronizing counters is very expensive in terms of resources, so it is only done when the instrumentation level is set to MAX.
Name | Key | Description | Version | Granularity | Type | Level |
Free memory (KB) | jvmRuntimeModule.freeMemory | The free memory in the JVM run time | 3.5.5 and later | Per Java Virtual Machine (JVM) | CountStatistic | Low |
Used memory (KB) | jvmRuntimeModule.usedMemory | The used memory in the JVM run time | 3.5.5 and later | Per JVM | CountStatistic | Low |
Total memory (KB) | jvmRuntimeModule.totalMemory | The total memory in the JVM run time | 3.5.5 and later | Per JVM | BoundedRangeStatistic. The upperBound and lowerBound are not implemented for the Total memory counter. | High |
JVM up time (seconds) | jvmRuntimeModule.upTime | The amount of time that the JVM is running | 5.0 | Per JVM | CountStatistic | Low |
Num GC calls | 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 | Per JVM | CountStatistic | Max |
Avg time between GC calls (ms) | 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 | Per JVM | TimeStatistic | Max |
Avg GC duration (ms) | 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 | Per JVM | TimeStatistic | Max |
Num waits for lock | 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 | Per JVM | CountStatistic | Max |
Avg time wait for lock | 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 | Per JVM | TimeStatistic | Max |
Num objects allocated | 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 | Per JVM | CountStatistic | Max |
Num objects moved | 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 | Per JVM | CountStatistic | Max |
Num objects freed | 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 | Per JVM | CountStatistic | Max |
Num started threads | 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 | Per JVM | CountStatistic | Max |
Num dead threads | 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 | Per JVM | CountStatistic | Max |