概述
Jstat是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和效能进行实时的命令列的监控,包括了对Heap size和垃圾回收状况的监控。jstat用法
jstat命令可以检视堆内存各部分的使用量,以及载入类的数量。命令的格式如下:jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数]
option: 引数选项
-t: 可以在打印的列加上Timestamp列,用于显示系统执行的时间
-h: 可以在周期性资料资料的时候,可以在指定输出多少行以后输出一次表头
vmid: Virtual Machine ID( 程序的 pid)
interval: 执行每次的间隔时间,单位为毫秒
count: 用于指定输出多少次记录,预设则会一直打印
类载入统计
Loaded:载入class的数量Bytes:所占用空间大小Unloaded:未载入数量Bytes:未载入占用空间Time:时间
编译统计
Compiled:编译数量。Failed:失败数量Invalid:不可用数量Time:时间FailedType:失败型别FailedMethod:失败的方法
垃圾回收统计
S0C:第一个幸存区的大小S1C:第二个幸存区的大小S0U:第一个幸存区的使用大小S1U:第二个幸存区的使用大小EC:伊甸园区的大小EU:伊甸园区的使用大小OC:老年代大小OU:老年代使用大小MC:方法区大小MU:方法区使用大小CCSC:压缩类空间大小CCSU:压缩类空间使用大小YGC:年轻代垃圾回收次数YGCT:年轻代垃圾回收消耗时间FGC:老年代垃圾回收次数FGCT:老年代垃圾回收消耗时间GCT:垃圾回收消耗总时间
堆内存统计
NGCMN:新生代最小容量NGCMX:新生代最大容量NGC:当前新生代容量S0C:第一个幸存区大小S1C:第二个幸存区的大小EC:伊甸园区的大小OGCMN:老年代最小容量OGCMX:老年代最大容量OGC:当前老年代大小OC:当前老年代大小MCMN:最小元资料容量MCMX:最大元资料容量MC:当前元资料空间大小CCSMN:最小压缩类空间大小CCSMX:最大压缩类空间大小CCSC:当前压缩类空间大小YGC:年轻代gc次数FGC:老年代GC次数
新生代垃圾回收统计
S0C:第一个幸存区大小S1C:第二个幸存区的大小S0U:第一个幸存区的使用大小S1U:第二个幸存区的使用大小TT:物件在新生代存活的次数MTT:物件在新生代存活的最大次数DSS:期望的幸存区大小EC:伊甸园区的大小EU:伊甸园区的使用大小YGC:年轻代垃圾回收次数YGCT:年轻代垃圾回收消耗时间
新生代内存统计
NGCMN:新生代最小容量NGCMX:新生代最大容量NGC:当前新生代容量S0CMX:最大幸存1区大小S0C:当前幸存1区大小S1CMX:最大幸存2区大小S1C:当前幸存2区大小ECMX:最大伊甸园区大小EC:当前伊甸园区大小YGC:年轻代垃圾回收次数FGC:老年代回收次数
老年代垃圾回收统计
MC:方法区大小MU:方法区使用大小CCSC:压缩类空间大小CCSU:压缩类空间使用大小OC:老年代大小OU:老年代使用大小YGC:年轻代垃圾回收次数FGC:老年代垃圾回收次数FGCT:老年代垃圾回收消耗时间GCT:垃圾回收消耗总时间
老年代内存统计
OGCMN:老年代最小容量OGCMX:老年代最大容量OGC:当前老年代大小OC:老年代大小YGC:年轻代垃圾回收次数FGC:老年代垃圾回收次数FGCT:老年代垃圾回收消耗时间GCT:垃圾回收消耗总时间
总结垃圾回收统计
S0:幸存1区当前使用比例S1:幸存2区当前使用比例E:伊甸园区使用比例O:老年代使用比例M:元资料区使用比例CCS:压缩使用比例YGC:年轻代垃圾回收次数FGC:老年代垃圾回收次数FGCT:老年代垃圾回收消耗时间GCT:垃圾回收消耗总时间
JVM编译方法统计
Compiled:最近编译方法的数量Size:最近编译方法的字节码数量Type:最近编译方法的编译型别。Method:方法名标识。后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~