JDK命令行工具 - jstat

用于监控堆的使用情况,可以做如下监控:
1 类的加载及卸载情况。
2 查看新生代、老生代及持久代的容量及使用情况。
3 查看新生代、老生代及持久代的垃圾收集情况,包括垃圾回收的次数及垃圾回收所占用的时间。
4 查看新生代中Eden区l及Survior区中容量及分配情况等。
该工具特别强大,它有众多的可选项,通过提供多种不同的监控维度,详细查看堆内各个部分的使用量。
使用时必须加上待监控的Java进程号,可选的不同维度参数以及可选的统计频率参数。

命令格式:
jstat [option vmid [interval[s|ms] [count]]]

其中:
vmid 当前运行的java进程号。
interval 打印间隔时间,通过s和ms确定,默认是毫秒。
count 打印次数。

根据统计的维度不同,可以使用不同的选项进行不同维度的统计,不同的操作系统支持的选项可能会不一样,可以通过-options选项,查看不同操作系统所支持选项:
$ jstat -options
-class
-compiler
-gc
-gccapacity
-gccause
-gcnew
-gcnewcapacity
-gcold
-gcoldcapacity
-gcpermcapacity
-gcutil
-printcompilation

说明:
-class            用于查看类加载情况的统计。
-compiler         用于查看虚拟机中即时编译器编译情况的统计。
-gc               用于查看JVM中堆的垃圾收集情况的统计。
-gccapacity       用于查看新生代、老生代及持久代的存储容量情况。
-gccause          用于查看垃圾收集的统计情况(这个和-gcutil选项一样),
                  如果有发生垃圾收集,它还会显示最后一次及当前正在发生垃圾收集的原因。
-gcnew            用于查看新生代垃圾收集的情况。
-gcnewcapacity    用于查看新生代的存储容量情况。
-gcold            用于查看老生代及持久代发生GC的情况。
-gcoldcapacity    用于查看老生代的容量。
-gcpermcapacity   用于查看持久代的容量。
-gcutil           用于查看新生代、老生代及持久代垃圾收集的情况。
-printcompilation 虚拟机编译方法的统计。

 

$ jstat -gc 21645 1s 3
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       PC     PU    YGC     YGCT    FGC    FGCT     GCT   
1024.0 1024.0  0.0    0.0    8192.0   6471.9   10240.0     4096.0   21504.0 2381.2      0    0.000   0      0.000    0.000
1024.0 1024.0  0.0    0.0    8192.0   6471.9   10240.0     4096.0   21504.0 2381.2      0    0.000   0      0.000    0.000
1024.0 1024.0  0.0    0.0    8192.0   6471.9   10240.0     4096.0   21504.0 2381.2      0    0.000   0      0.000    0.000
其中:
S0C  新生代中Survivor space中S0当前容量的大小(KB)
S1C  新生代中Survivor space中S1当前容量的大小(KB)
S0U  新生代中Survivor space中S0容量使用的大小(KB)
S1U  新生代中Survivor space中S1容量使用的大小(KB)
EC   Eden space当前容量的大小(KB)
EU   Eden space容量使用的大小(KB)
OC   Old space当前容量的大小(KB)
OU   Old space使用容量的大小(KB)
PC   Permanent space当前容量的大小(KB)
PU   Permanent space使用容量的大小(KB)
YGC  从应用程序启动到采样时发生 Young GC 的次数
YGCT 从应用程序启动到采样时 Young GC 所用的时间(秒)
FGC  从应用程序启动到采样时发生 Full GC 的次数
FGCT 从应用程序启动到采样时 Full GC 所用的时间(秒)
GCT  从应用程序启动到采样时用于垃圾回收的总时间(秒),它的值等于YGCT+FGCT

 

$ jstat -gcutil 21645
  S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT   
  0.00   0.00  79.00  40.00  11.07      0    0.000     0    0.000    0.000
其中:
S0   Heap上的 Survivor space 0 区已使用空间的百分比
S1   Heap上的 Survivor space 1 区已使用空间的百分比
E    Heap上的 Eden space 区已使用空间的百分比
O    Heap上的 Old space 区已使用空间的百分比
P    Perm space 区已使用空间的百分比
YGC  从应用程序启动到采样时发生 Young GC 的次数
YGCT 从应用程序启动到采样时 Young GC 所用的时间(秒)
FGC  从应用程序启动到采样时发生 Full GC 的次数
FGCT 从应用程序启动到采样时 Full GC 所用的时间(秒)
GCT  从应用程序启动到采样时用于垃圾回收的总时间(秒),它的值等于YGCT+FGCT

使用VisualVM等可视化工具能以图表的形式直观展示堆的使用情况,但控制台中的jstat依然是一种常用的监控方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值