You can use the Java virtual machine (JVM) counters that the Performance Monitoring Infrastructure (PMI) and Tivoli Performance Viewer (TPV) collect 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, you must turn on the monitoring by setting the -XrunpmiJvmpiProfiler command line. See Enabling the Java virtual machine profiler data for more information.
Name | Key | Description | Granularity | Type | Level | Overhead | ID |
FreeMemory | jvmRuntimeModule.freeMemory | The free memory in the JVM run time | Per Java Virtual Machine (JVM) | CountStatistic | Extended | Low | 2 |
UsedMemory | jvmRuntimeModule.usedMemory | The used memory in the JVM run time | Per JVM | CountStatistic | Basic | Low | 3 |
HeapSize | jvmRuntimeModule.totalMemory | The total memory in the JVM run time | Per JVM | BoundedRangeStatistic. The upperBound and lowerBound are not implemented for the Total memory counter. | Basic | High | 1 |
UpTime | jvmRuntimeModule.upTime | The amount of time that the JVM is running | Per JVM | CountStatistic | Basic | Low | 4 |
GCCount | jvmRuntimeModule.numGcCalls | The number of garbage collection calls. This counter is not available unless the -XrunpmiJvmpiProfiler option is set when starting the JVM. | Per JVM | CountStatistic | All | Max | 11 |
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. | Per JVM | TimeStatistic | All | Max | 12 |
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. | Per JVM | TimeStatistic | All | Max | 13 |
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. | Per JVM | CountStatistic | All | Max | 19 |
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. | Per JVM | TimeStatistic | All | Max | 20 |
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. | Per JVM | CountStatistic | All | Max | 14 |
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. | Per JVM | CountStatistic | All | Max | 16 |
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. | Per JVM | CountStatistic | All | Max | 15 |
ThreadStartedCount | jvmRuntimeModule.numThreadsStarted | The number of threads started. This counter is not available unless the -XrunpmiJvmpiProfiler option is set when starting the JVM. | Per JVM | CountStatistic | All | Max | 17 |
ThreadEndedCount | jvmRuntimeModule.numThreadsDead | The number of failed threads. This counter is not available unless the -XrunpmiJvmpiProfiler option is set when starting the JVM. | Per JVM | CountStatistic | All | Max | 18 |