jstat是用于监控虚拟机运行状态信息的命令,可以显示虚拟机进程中的类装载、内存使用、GC情况、JIT编译等运行状态数据,能够在Linux上快速定位虚拟机性能问题。
jstat命令在jdk的bin目录下,目录中还有很多实用的命令
*以下分析是基于jdk1.8+
jstat命令格式:
|
|
option | 说明 |
---|---|
class | 查看类装载、卸载数量、总空间及类装载所耗时间 |
gc | 查看Java堆状况,包括Eden、survivor、老年代、永久代的容量 |
gcutil | 类似于gc,主要输出各区域空间使用占比 |
gccause | 同gc,会多输出每次gc的原因 |
gccapacity | 同gc,但输出的主要是Java堆各个区域使用到的最大、最小空间 |
gcnew | 查看新生代的使用情况 |
gcnewcapacity | 同gcnew,输出内容主要关注新生代的最大、最小空间 |
gcold | 查看老年代的使用情况 |
gcoldcapacity | 同gcold,输出内容主要关注老年代的最大、最小空间 |
gcpermcapacity | 输出永久代使用到的最大、最小空间 |
compiler | 输出JIT编译器编译过的方法、耗时等信息 |
printcompilation | 输出已经被JIT编译的方法 |
????
- jstat -class <pid> : 显示加载class的数量及所占空间等信息
|
|
- jstat -gc <pid> : 显示gc的信息,查看gc的次数和时间
|
|
- jstat -gcutil <pid> : 统计gc信息
|
|
- jstat -gccause <pid> : 查看gc原因
|
|
- jstat -gccapacity <pid> : 查看虚拟机中对象的使用和容量大小
|
|
- jstat -gcnew <pid> : 查看新生代gc情况
|
|
- jstat -gcnewcapacity <pid> : 查看新生代空间容量
|
|
- jstat -gcold <pid> : 查看老年代gc情况
|
|
- jstat -gcoldcapacity <pid> : 查看老年代容量
|
|
- jstat -gcpermcapacity <pid> : 查看perm中对象的信息和容量
|
|
- jstat -compiler <pid> : 查看虚拟机实时编译的信息
|
|
- jstat -printcompilation <pid> : 查看虚拟机已经编译过的方法
|
|