jstat (Java Virtual Machine Statistics monitoring tool) 统计监控工具
命令
jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]
option 选项
- class
显示classLoader 相关信息
- compiler
显示 JIT 编译相关信息
- gc
显示与 GC 相关堆信息
- gccapacity
显示各个代的容量以及使用情况
- gccause
显示垃圾收集相关信息,最后一次垃圾回收的原因
- gcnew
显示新生代信息
- gcnewcapacity
显示新生代使用情况
- gcold
显示老年代和永久的信息
- gcoldcapacity
显示老年代的大小
- gcpermcapactiy
显示永久代的大小
- gcutil
显示垃圾收集信息
- printcompilation
输出 JIT 编译的方法信息 -t
参数可以在输出信息前面加上一个 Timestamp 列,显示程序运行的时间
-h
参数可以周期数据输出时,输出多少行后,跟着输出一个表头信息
interval
指定输出统计数据的周期,单位毫秒
count
一共输出多少次数据
例子
1.每秒统一次classloader信息,一共输出 2 次
jstat -class
装载了 391 个类,大小 815.2个字节,卸载了 0 个类,大小 0 个字节,装载和卸载耗费时间总时间 0.04秒
2.显示VM实时编译的数量
jstat -compiler
编译任务执行了 18 个,失败了 0 个,失效了 0 个,编译耗费 0.02 秒,最后一个编译失败任务的类型为 0 ,最后一个编译失败任务所在的方法
3.显示 GC 堆相关信息
jstat -gc
- S0C
年轻代中第一个 S 区容量(字节)
- S1C
年轻代中第二个 S 区容量(字节)
- S0U
年轻代中第一个 S 区已使用的空间(字节)
- S1U
年轻代中第二个 S 区已使用的空间(字节)
- EC
年轻代中 E 区容量(字节)
- EU
年轻代中 E 区使用空间(字节)
- OC
old代的容量
- OU
old代已使用空间
- MC
metaspace元空间容量
-MU
metaspace元空间已使用容量
- YGC
应用程序启动到采样时年轻代中 GC 次数
- YGCT
应用程序启动到采样时年轻代中 GC所用时间
- FGC
应用程序启动到采样老年代 GC 次数(秒)
- FGCT
应用程序启动到采样老年代 GC 所用时间(秒)
- GCT
应用程序从启动到采样 GC 所用总时间(秒)
4.显示对象使用和占用大小
jstat -gccapacity
- NGCMN
年轻代中初始化大小(字节)
- NGCMX
年轻代中最大容量(字节)
- NGC
当前年轻代容量(字节)
- S0C
年轻代中第一个 S 区容量
- S1C
年轻代中第二个 S 区容量
- EC
E 区容量
- OGCMN
老年代初始大小
- OGCMX
老年代最大容量
- OGC
老年代当前新生成的容量
- OC
老年代容量
- MCMN
metaspace 元空间初始大小
- MCMX
metaspace 元空间最大容量
- MC
metaspace 元空间新生成的容量
- CCSMN
最小压缩类空间大小
- CCSC
当前压缩类空间大小
- YGC
从应用启动到采样年轻代中 GC 次数
- FGC
从应用启动到采样老年代中 GC 次数
5.metaspace 中对象的信息
jstat -gcmetacapacity
- MCMN
最小元数据容量
- MCMX
最大元数据容量
- MC
当前元数据空间大小
- CCSMN
最小压缩类空间大小
- CCSMX
最大压缩类空间大小
- CCSC
当前压缩类空间大小
- YGC
从应用程序启动到采样 YGC 次数
- FGC
从应用程序启动到采样 FULL GC 次数
- FGCT
从应用程序到采样 FULL GC 所用时间
- GCT
从应用程序到采样 GC 总时间
6.年轻代对象信息
jstat -gcnew
- S0C
年轻代中第一个 S 区容量
- S1C
年轻代中第二个 S 区容量
- S0U
年轻代中第一个 S 区已使用容量
- S1U
年轻代中第二个 S 区已使用容量
- TT
持有次数限制
- MTT
最大持有次数限制
- DSS
期望的S 区大小
- EC
年轻代中 E 区大小
- EU
年轻代中E 区已使用大小
- YGC
从应用程序启动到采样 YGC 次数
- YGCT
从应用程序启动到采样 YGC所用时间
7.年轻代对象信息以及占用量
jstat -gcnewcapacity
- NGCMN
年轻代初始化大小
- NGCMX
年轻代最大容量
- NGC
年轻代中当前容量
- S0CMX
S0最大的容量
- S0C
当前 S0 大小
- S1CM
S1 最大容量
- S1C
当前 S1大小
- ECMX
E 区最大容量
- EC
E 区当前大小
- YGC
从应用程序启动到采样 YGC 次数
- FGC
从应用程序启动到采样 FGC 次数
8.老年代对象信息
jstat -gcold
- MC
metaspace 元空间最大容量
- MU
metaspace 元空间当前大小
- CCSC
压缩类空间大小
- CCSU
压缩类空间当前使用大小
- OC
老年代容量
- OU
老年代已使用大小
- YGC
从应用程序启动到采样YGC 次数
- FGC
从应用程序启动到采样 FGC 次数
- FGCT
从应用程序启动到采样 FGC 耗费总时间
- GCT
从应用程序启动到采样 GC 耗费总时间
9.老年代对象占用情况
jstat -gcoldcapacity
- OGCMN
老年代初始化大小
- OGCMX
老年代最大容量
- OGC
老年代当前使用大小
- OC
老年代容量
10.统计 GC 情况
jstat -gcutil
11.显示 GC 导致的原因,同 - gcutil
jstat -gccause
- LGCC
上一次 GC 原因
- GCC
当前 GC 原因
12.VM 执行的信息
jstat -printcompilation
- compiled
编译任务的数目
- size
方法生成的字节码大小
- type
编译类型
- method
类名和方法名
原文
http://mousycoder.com/thinking-in-jvm/44/