Jstat是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下,
主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。
[root@push ~]# jstat -help Usage: jstat -help|-options jstat - [-t] [-h] [ []] Definitions: An option reported by the -options option Virtual Machine Identifier. A vmid takes the following form: [@[:]] Where is the local vm identifier for the target Java virtual machine, typically a process id; is the name of the host running the target Java virtual machine; and is the port number for the rmiregistry on the target host. See the jvmstat documentation for a more complete description of the Virtual Machine Identifier. Number of samples between header lines. Sampling interval. The following forms are allowed: ["ms"|"s"] Where is an integer and the suffix specifies the units as milliseconds("ms") or seconds("s"). The default units are "ms". Number of samples to take before terminating. -J Pass directly to the runtime system.
option 参数选项:
[root@push ~]# jstat -options -class -compiler -gc -gccapacity -gccause -gcmetacapacity -gcnew -gcnewcapacity -gcold -gcoldcapacity -gcutil -printcompilation
想要明白jstat命令输出结果的含义,先看一张图,这张图很清晰的说明JVM内存结构的布局和相应的控制参数:
可以看出:
堆内存 = 年轻代 + 年老代
年轻代 = Eden区 + 两个Survivor区(From和To)
现在来解释各列的含义:
S0C、S1C、S0U、S1U:Survivor 0/1区容量(Capacity)和使用量(Used)
EC、EU:Eden区容量和使用量
OC、OU:年老代容量和使用量
PC、PU:永久代容量和使用量
YGC、YGT:年轻代GC次数和GC耗时
FGC、FGCT:Full GC次数和Full GC耗时 GCT:GC总耗时
命令:jstat -class >
jstat -class >
描述:显示加载class的数量,及所占空间等信息。
说明:
命令:jstat -compiler >
jstat -compiler >
描述:显示VM实时编译(JIT)的数量等信息。
命令:jstat -gc >
jstat -gc >
描述:显示gc相关的堆信息,查看gc的次数,及时间。
命令:jstat -gccapacity >
jstat -gccapacity >
描述:显示VM内存中三代(young,old,perm)对象的使用和占用大小。
命令:jstat -gcmetacapacity >
jstat -gcmetacapacity >
描述:metaspace 中对象的信息及其占用量。
命令:jstat -gcnew >
jstat -gcnew >
描述:年轻代中对象的信息及其占用量。
命令:jstat -gcnewcapacity >
jstat -gcnewcapacity >
描述:年轻代对象的信息及其占用量。
命令:jstat -gcold >
jstat -gcold >
描述:老年代对象的信息。
命令:jstat -gcoldcapacity >
jstat -gcoldcapacity >
描述:老年代对象的信息及占用量。
命令:jstat -gcutil >
jstat -gcutil >
描述:统计gc信息。
命令:jstat -gccause >
jstat -gccause >