服务器OOM如何排查和解决

本文介绍了如何使用Linux的`top`命令监控系统资源,特别是JVM内存使用情况。同时,通过`jstat`命令查看JVM垃圾收集器的状态,以及利用`jmap`导出堆内存快照进行详细分析。在线上环境中,配置JVM参数以在出现OOM时自动生成堆转储文件,以便于事后分析问题原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考文章: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时的内存快照了,到底是哪里出现的问题。
 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值