JVM诊断工具

目录

1、堆诊断

step 1: 查询pid

step 2: 观察实时堆使用

2、GC日志诊断

2.1 在线实时诊断

2.2 离线诊断


1、堆诊断

step 1: 查询pid

命令: jps -lmv | grep homework

step 2: 观察实时堆使用

命令:

jmap -heap {JVM进程号}

 

2、GC日志诊断

2.1 在线实时诊断

step 1: 查询pid

jps -lmv | grep homework

step 2: 观察实时gc情况(因为没有gc日志)

jstat -gc -h10 {进程号} 200ms 10 > temp_gc.txt
sed -i 's/S0C/S0容量(KB)/g' temp_gc.txt
sed -i 's/S1C/S1容量(KB) /g' temp_gc.txt
sed -i 's/S0U/S0使用(KB) /g' temp_gc.txt
sed -i 's/S1U/S1使用(KB) /g' temp_gc.txt
sed -i 's/EC/Eden使用(KB) /g' temp_gc.txt
sed -i 's/EU/Eden容量(KB)/g' temp_gc.txt
sed -i 's/OC/Old容量(KB)/g' temp_gc.txt
sed -i 's/OU/Old使用(KB)/g' temp_gc.txt
sed -i 's/MC/Metaspace容量(KB) /g' temp_gc.txt
sed -i 's/MU/Metaspace使用(KB)/g' temp_gc.txt
sed -i 's/YGC/YoungGC次数/g' temp_gc.txt
sed -i 's/YGCT/FullGC耗时/g' temp_gc.txt
sed -i 's/FGC/FullGC次数/g' temp_gc.txt
sed -i 's/FGCT/YoungGC耗时/g' temp_gc.txt
sed -i 's/GCT/总GC耗时/g' temp_gc.txt
cat temp_gc.txt

   

2.2 离线诊断

Step 1: jvm配置gc日志输出(示例JDK1.8)

-Xloggc:logs/gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps

Step 2:选择合理的工具分析gc.log日志文件

人工读取文本文件: 人肉
       在线分析-GCEasy(推荐使用):https://www.gceasy.io/
       GCViewer工具 :GCViewer没有GCEasy好用
       GCPlot:更不好用

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李桥s2008100262

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值