Java学习笔记 (三) Java常用命令 jstat 虚拟机统计信息监视工具

jstat的用处

    jstat(Java Statistics Monitoring Tool) 是用于监视虚拟机各种运行状态信息的命令行工具,
它可以显示本地或者远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据,在没有GUI图形界面,
只提供了纯文本控制台环境的服务器上,它将是运行期定位虚拟机性能问题的首选。

jstat 命令格式

jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]

这里写图片描述

参数简介:

  • option:选项,一般使用 -gcutil 查看gc情况。
  • vmid: VM的进程号.虚拟机进程号。
  • interval:间隔时间,单位为秒或者毫秒
  • count: 打印次数,如果缺省会一直打印下去

注意事项:

    1.参数interval和count代表查询间隔时间与次数,如果省略这两个参数,说明只查询一次。
    2.命令格式中的vmid是虚拟机进程号,lvmid是本地虚拟机进程号,如果是本地虚拟机进程,
    vmid==lvmid,如果是远程虚拟机进程,那么vmid的格式为:
[protocol:][//] lvmid [@hostname[:port]/servername]
jstat -option vmid interval count
假设需要每隔1秒,查询一次进程23960的垃圾收集情况,一共查询5次,那么命令如下:
jstat -gc 23960 1s 5   //interval 后缀时间单位缺省时默认为ms 只能设置为 ms 或者 s

执行结果如下:
这里写图片描述

jstat 主要选项如下:

选项 作用
-class 监视类装载、卸载数量、总空间以及类装载所耗费的时间
-gc 监视Java堆状况,包括Eden区、两个survivor区、老年代、永久代等的容量、已用空间、GC时间合计等信息
-gccapacity 监视内容基本与-gc相同,但输出主要关注java堆各个区域使用到的最大最小空间
-gcutil 监视内容基本与-gc相同,但输出主要关注已使用空间占总空间的百分比
-gccause 与-gcutil功能一样,但是会额外输出导致上一次GC产生的原因
-gcnew 监视新生代GC状况
-gcnewcapacity 监视内容与-gcnew基本相同,输出主要关注使用到的最大、最小空间
-gcold 监视老年代GC状况
-gcoldcapacity 监视内容与-gcold基本相同,输出主要关注使用到的最大、最小空间
-gcpermcapacity 输出永久代使用到的最大、最小空间(jdk1.8 以后无法使用
-compiler 输出JIT编译器编译过的方法、耗时等信息
-printcompilation 输出已经被JIT编译的方法

jstat 返回信息各列的含义:

列名 描述
S0C Survivor0的当前容量
S1C Survivor1的当前容量
S0U Survivor0的使用量
S1U Survivor1的使用量
EC Eden区的当前容量
EU Eden区的使用量
OC old区的当前容量
OU old区的使用量
PC 方法区的当前容量
PU 方法区的使用量
YGC Young GC次数
YGCT Young GC累积耗时
FGC Full GC次数
FGCT Full GC累积耗时
GCT GC总的累积耗时
NGCMN 新生代最小容量
NGCMX 新生代最大容量
NGC 新生代当前容量
OGCMN 老年代最小容量
OGCMX 老年代最大容量
OGC 老年代当前容量
PGCMN 方法区最小容量
PGCMX 方法区最大容量
PGC 方法区当前容量
PC 方法区的当前容量
PU 方法区使用量
LGCC 上一次GC发生的原因
GCC 当前GC发生的原因
TT 存活阀值,如果对象在新生代移动次数超过此阀值,则会被移到老年代
MTT 最大存活阀值,如果对象在新生代移动次数超过此阀值,则会被移到老年代
DSS survivor区的理想容量

jstat 各选项执行效果

jstat -class 23960 100 5

这里写图片描述

jstat -gc 23960 100 5

这里写图片描述

jstat -gccapacity 23960 100 5

这里写图片描述

jstat -gcutil 23960 100 5

这里写图片描述

jstat -gccause 23960 100 5

这里写图片描述

jstat -gcnew 23960 100 5

这里写图片描述

jstat -gcnewcapacity 23960 100 5

这里写图片描述

jstat -gcold 23960 100 5

这里写图片描述

jstat -gcoldcapacity 23960 100 5

这里写图片描述

jstat -gcpermcapacity 23960 100 5 

这里写图片描述

这个选项是输出永久代使用到的最大、最小空间,我用的是JDK1.8,1.8已经移除了永久代,所以报错了。

jstat -compiler 23960 100 5

这里写图片描述

jstat -printcompilation 23960 100 5

这里写图片描述

参考资料

猜你喜欢

转载自blog.csdn.net/weixin_39913200/article/details/81147535