Jstat是JDK自带的一个轻量级小工具。
主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。
用以判断JVM是否存在内存问题。
jstat命令命令格式: jstat [Options] vmid [interval] [count]
命令参数说明:
Options,一般使用 -gcutil 或 -gc 查看gc 情况
pid,当前运行的 java进程号
interval,间隔时间,单位为秒或者毫秒
count,打印次数,如果缺省则打印无数次
Options 参数如下:
-gc:统计 jdk gc时 heap信息,以使用空间字节数表示
-gcutil:统计 gc时, heap情况,以使用空间的百分比表示
-class:统计 class loader行为信息
-compiler:统计编译行为信息
-gccapacity:统计不同 generations(新生代,老年代,持久代)的 heap容量情况
-gccause:统计引起 gc的事件
-gcnew:统计 gc时,新生代的情况
-gcnewcapacity:统计 gc时,新生代 heap容量
-gcold:统计 gc时,老年代的情况
-gcoldcapacity:统计 gc时,老年代 heap容量
-gcpermcapacity:统计 gc时, permanent区 heap容量
Jstat全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下。Jstat有众多的可选项,详细查看堆内各个部分的使用量,以及加载类的数量。使用时,需加上查看进程的进程id,和所选参数。
使用 jps -l 命令查看运行的java程序的 pid 找到你要监控的那个,这里是1507。
jstat -gc pid
这里打印出了到当前时间jvm的gc情况。
jstat -gc 1507 3000 5
每隔3000秒打印一次 总共打印5次
S0C:第一个幸存区的容量大小
S1C:第二个幸存区的容量大小
S0U:第一个幸存区的使用大小
S1U:第二个幸存区的使用大小
EC:伊甸园区的容量大小
EU:伊甸园区的使用大小
OC:老年代容量大小
OU:老年代使用大小
MC:方法区容量大小
MU:方法区使用大小
CCSC:压缩类空间容量大小
CCSU:压缩类空间使用大小
YGC:年轻代垃圾回收次数
YGCT:年轻代垃圾回收消耗时间
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间
GCT:垃圾回收消耗总时间
jstat -gcutil pid
跟-gc一样,不过是显示内存使用的百分比。
jstat-class pid
显示加载class的数量,及所占空间等信息
jstat-compiler pid
显示VM实时编译的数量等信息。
jstat -gccapacity pid
显示JVM内存中各代对象的使用和占用大小。
NGCMN:新生代最小容量
NGCMX:新生代最大容量
NGC:当前新生代容量
S0C:第一个幸存区大小
S1C:第二个幸存区的大小
EC:伊甸园区的大小
OGCMN:老年代最小容量
OGCMX:老年代最大容量
OGC:当前老年代大小
OC:当前老年代大小
MCMN:最小元数据容量
MCMX:最大元数据容量
MC:当前元数据空间大小
CCSMN:最小压缩类空间大小
CCSMX:最大压缩类空间大小
CCSC:当前压缩类空间大小
YGC:年轻代gc次数
FGC:老年代GC次数
jstat -gccause pid
监视Java堆状况,包括Eden区、两个survivor区、老年代等的容量、已用空间、GC时间合计等信息、导致上一次GC产生的原因
jstat -gcnewpid
显示年轻代对象的信息。
jstat -gcnewcapacity pid
统计 gc时,新生代 heap容量 。
jstat -gcold pid
统计 gc时,老年代的情况 。
jstat-gcoldcapacitypid
统计 gc时,老年代 heap容量 。
如若转载,请注明出处:https://www.ozabc.com/keji/287911.html