linux jvm监控命令,jvm gc监控分析常用命令

1、 jstat -gcutil pid

统计gc信息统计。

[root@tx-oss-web-01-16-100 jvm-monitor]# jstat -gcutil 8733

S0 S1 E O P YGC YGCT FGC FGCT GCT

82.43 0.00 75.67 97.91 99.57 23066 152.726 77 96.956 249.681

2、 jstat -gc pid

可以显示gc的信息,查看gc的次数,及时间。其中最后五项,分别是young gc的次数,young gc的时间,full gc的次数,full gc的时间,gc的总时间。

[root@tx-oss-web-01-16-100 jvm-monitor]# jstat -gc 8733

S0C S1C S0U S1U EC EU OC OU PC PU YGC YGCT FGC FGCT GCT

2432.0 2432.0 0.0 1616.0 169856.0 127544.6 488384.0 478753.1 126336.0 125788.6 23069 152.747 77 96.956 249.703

3、 jstat -gccapacity pid

可以显示,VM内存中三代(young,old,perm)对象的使用和占用大小,如:PGCMN显示的是最小perm的内存使用量,PGCMX显示的是perm的内存最大使用量,PGC是当前新生成的perm内存占用量,PC是但前perm内存占用量。

其他的可以根据这个类推, OC是old内纯的占用量。

[root@tx-oss-web-01-16-100 jvm-monitor]# jstat -gccapacity 8733

NGCMN NGCMX NGC S0C S1C EC OGCMN OGCMX OGC OC PGCMN PGCMX PGC PC YGC FGC

174720.0 1048576.0 174720.0 2368.0 2368.0 169984.0 349568.0 2097152.0 488384.0 488384.0 21248.0 1048576.0 126336.0 126336.0 23045 77

4、jstat -gcnew pid

年轻代对象的信息。

S0C S1C S0U S1U TT MTT DSS EC EU YGC YGCT

2240.0 2240.0 0.0 1568.0 14 15 2240.0 170176.0 89972.2 23083 152.845

5、jstat -gcnewcapacity pid

年轻代对象的信息及其占用量。

[root@tx-oss-web-01-16-100 jvm-monitor]# jstat -gcnewcapacity 8733

NGCMN NGCMX NGC S0CMX S0C S1CMX S1C ECMX EC YGC FGC

174720.0 1048576.0 174720.0 1984.0 349504.0 349504.0 2176.0 1048448.0 170368.0 23102 77

6、jstat -gcold pid

old代对象的信息。

[root@tx-oss-web-01-16-100 jvm-monitor]# jstat -gcold 8733

PC PU OC OU YGC FGC FGCT GCT

126336.0 125788.6 488384.0 482489.2 23105 77 96.956 249.961

7、jstat -gcoldcapacity pid

old代对象的信息及其占用量。

[root@tx-oss-web-01-16-100 jvm-monitor]# jstat -gcoldcapacity 8733

OGCMN OGCMX OGC OC YGC FGC FGCT GCT

349568.0 2097152.0 488384.0 488384.0 23109 77 96.956 249.988

8、jstat -gcpermcapacity pid

perm对象的信息及其占用量。

[root@tx-oss-web-01-16-100 jvm-monitor]# jstat -gcpermcapacity 8733

PGCMN PGCMX PGC PC YGC FGC FGCT GCT

21248.0 1048576.0 126336.0 126336.0 23112 77 96.956 250.012

9、jstat -class pid

显示加载class的数量,及所占空间等信息。

[root@tx-oss-web-01-16-100 jvm-monitor]# jstat -class 8733

Loaded Bytes Unloaded Bytes Time

16772 34185.4 106 173.5 53.06

10、jstat -compiler pid

显示VM实时编译的数量等信息。

[root@tx-oss-web-01-16-100 jvm-monitor]# jstat -compiler 8733

Compiled Failed Invalid Time FailedType FailedMethod

20734 2 0 167.48 1 com/mysql/jdbc/NonRegisteringDriver parseURL

11、jstat -printcompilation pid

当前VM执行的信息。

[root@tx-oss-web-01-16-100 jvm-monitor]# jstat -printcompilation 8733

Compiled Size Type Method

20734 194 1 com/mysql/jdbc/SQLError get

12,jmap -heap 8733

查看JVM中各个代的内存状况

13,jmap -histo:live 8733

程序中当前的对象按照个数和占用的空间排序以后打印出来

结论

1、在CMS-remark阶段需要对堆中所有的内存对象进行处理,如果在这个阶段之前强制执行一次年轻代的GC会大量减少remark需要处理的内存数量,进而降低JVM卡顿对成功率的影响。

2、对于Java HTTP服务,JVM的卡顿时间应该小于HTTP客户端的调用超时时间,否则JVM卡顿会对成功率造成影响。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值