参考文章:https://www.cnblogs.com/c-xiaohai/p/12489336.html
top命令显示的结果列表中,会看到%MEM这一列,这里可以看到你的进程可能对内存的使用率特别高。以查看正在运行的进程和系统负载信息,包括cpu负载、内存使用、各个进程所占系统资源
使用jstat命令: jstat -gcutil 20886 1000 10
每隔一段时间显示一下,包括新生代的两个S0、s1区、Eden区,以及老年代的内存使用率,还有young gc以及full gc的次数
使用jmap命令查看 jmap -histo pid
把当前堆内存的快照转储到dumpfile_jmap.hprof文件中,然后可以对内存快照进行分析
另外,务必提到,线上jvm必须配置-XX:+HeapDumpOnOutOfMemoryError,-XX:HeapDumpPath=/path/heap/dump。因为这样就是说OOM的时候自动导出一份内存快照,你就可以分析发生OOM时的内存快照了,到底是哪里出现的问题。
本文介绍了如何使用Linux的`top`命令监控系统资源,特别是JVM内存使用情况。同时,通过`jstat`命令查看JVM垃圾收集器的状态,以及利用`jmap`导出堆内存快照进行详细分析。在线上环境中,配置JVM参数以在出现OOM时自动生成堆转储文件,以便于事后分析问题原因。
973

被折叠的 条评论
为什么被折叠?



