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进程号}

扫描二维码关注公众号,回复: 12198014 查看本文章

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:更不好用

 

猜你喜欢

转载自blog.csdn.net/s2008100262/article/details/110950087
今日推荐