jstat虚拟机统计信息监视工具

Java基础

浏览数:74

2019-9-17

AD:资源代下载服务

jstsat(JVM Statistics Monitoring Tool)

  jstat用于监视虚拟机各种运行状态信息的命令工具。可以显示本地或者远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据。

  jstat 命令格式:

jstat [ option vmid [interval [s|ms] [count]] ]

命令格式中的VMID与LVMID,如果是本地虚拟机进程,VMID与LVMID是一致的,如果是远程虚拟机进程,那么VMID的格式应该是:
[protocol : ][//] lvmid [ @hostname [ :port ] / servername ]
interval 和 count 代表查询间隔和次数,如果缺省这两个参数,说明只查询一次。

  option 列表:

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

-gcutil 例子

 ~ jstat -gcutil 2861 1000 2
  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT
  0.00  81.88  86.39   0.12  98.33  95.71      5    0.023     0    0.000    0.023
  0.00  81.88  86.39   0.12  98.33  95.71      5    0.023     0    0.000    0.023

2861是改程序在虚拟机的vim(用jps查询),1000表示每隔一秒查询一次,2表示一共查询2次。
新生代中两个Survivor区(S0、S1,表示Survivor0、Survivor1)里面使用的情况分别是0.00%和81.88%,Eden区(E,表示Eden)使用了86.39%。老年代old(O表示)使用了0.12%。元空间(M,表示Matespace,jdk1.8用这个代替了jdk1.7之前的PermGen Space永久代)使用98.33,但是这个Matespace大小跟虚拟机内存大小无关,直接跟物理机内存大小有关。CCSC表示的是Klass Metaspace的已经被commit的内存。程序启动以来发生Minor GC(YGC表示Young GC)5次,总耗时 0.023秒(YGCT表示程序以来发生Young GC所以次数总消耗的时间);发生Full GC(FGC表示Full GC)0次,总耗时0秒(FGCT表示所有Full GC执行的所耗时间),所有GC总共耗时0.023秒(GCT表示所有GC包括minor GC和Full GC)。

作者:wolf_lb