使用工具jstat和jmap
监控jvm进程状态 jstat
jstat -gc pid {间隔时间} {次数} 监控gc情况
S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
1024.0 1024.0 0.0 0.0 8192.0 4436.4 10240.0 0.0 4480.0 786.6 384.0 76.4 0 0.000 0 0.000 0.000
1024.0 1024.0 0.0 0.0 8192.0 6484.4 10240.0 0.0 4480.0 786.6 384.0 76.4 0 0.000 0 0.000 0.000
1024.0 1024.0 0.0 682.0 8192.0 0.0 10240.0 4098.1 4864.0 3048.6 512.0 322.8 1 0.006 0 0.000 0.006
1024.0 1024.0 0.0 682.0 8192.0 2048.0 10240.0 4098.1 4864.0 3048.6 512.0 322.8 1 0.006 0 0.000 0.006
1. S0C:这是From Survivor区的大小
2. S1C:这是To Survivor区的大小
3. S0U:这是From Survivor区当前使用的内存大小
4. S1U:这是To Survivor区当前使用的内存大小
5. EC:这是Eden区的大小
6. EU:这是Eden区当前使用的内存大小
7. OC:这是老年代的大小
8. OU:这是老年代当前使用的内存大小
9. MC:这是方法区(永久代、元数据区)的大小
10. MU:这是方法区(永久代、元数据区)的当前使用的内存大小
11. YGC:这是系统运行迄今为止的Young GC次数
12. YGCT:这是Young GC的耗时
13. FGC:这是系统运行迄今为止的Full GC次数
14. FGCT:这是Full GC的耗时
15. GCT:这是所有GC的总耗时
堆内存情况
dump 堆: jmap -dump:format=b,file=dump.hprof pid
排查oom保留现场
查看类对象内存占用 jmap -histo pid
查看jvm各区域内存概况: jmap -heap pid
本文来自博客园,作者:mushishi,转载请注明原文链接:https://www.cnblogs.com/mushishi/p/14553122.html