OOM的处理流程

本文介绍了在IT技术中,如何通过jps、jstat、jinfo等命令监控JVM状态,以及在遇到OOM时进行故障排查的方法,重点关注内存占用、GC情况和大对象分析。

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

一、OOM常用命令

jps:JVM Process Status 查看所有JVM进程状态
jstat:JVM statistics monnitoring 查看jvm各方面的运行数据 可以看堆的容量和已使用空间
jinfo:configuration info 查看jvm的配置参数
jmap: JVM memory map 生产jvm的内存转储快照、生产heapdump文件 查询finalize执行队列
输出堆空间的对象信息,
jhat:heap analysis tool 堆分析工具
jstack:jvm中线程快照

使用jps和 jstat -gcutil 156 1000 10 命令查看 刚重启后与即将OOM的机器GC情况

内存占用较低,刚重启后机器 Eden 区 30% survivor 区无 老年代42%
内存占用较高,即将OOM机器 Eden 区 已满 survivor 68% 老年代67%

造成OOM原因可能有两种
1.访问量增大,创建对象频率加快,GC来不及回收,造成OOM
2.内存泄漏,无用对象还存在引用,GC无法回收
第一种会突然变多,第二种是缓慢增加的,

dump OOM前堆快照,查看当前存在哪些大对象(实例数量最多,占用内存空间比例最大的),找到大对象引用

看下应该是哪个对象没有回收。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值