OOM 内存溢出排查手记

到目前为止,发生了几次溢出。现将排查过程记录如下,供大家交流。

一,先将dump文件,下载到本地。

下载方式可以参见我前面的文章kubernates中使用jvm 工具

二,将dump文件导入jvisualvm

在这里插入图片描述
可以看到出现OOM的线程是grpc,这个线程可以关注下,不过目前还不能确定是这个线程引起的问题,也可能是这个线程比较倒霉。

三,点击查找20个保留的最大对象,看下哪些对象占的内存比较多

在这里插入图片描述
可以看到,站内存最大的几个对象都是hibernate和mysql有关的类。猜测,可能数据写入异常,导致大量写入在排队。
下一步我们看下sql请求,是不是如上面猜测。

四,通过阿里的druid监控

在这里插入图片描述
果然发现,有个插入语句异常。
看下数据库,发现有大量数据写入,数据量已经到了近百万条。

五,第一个反应,SQL中有设置错误的触发器?

经查,没有。也没有可疑的存储过程。

六,那就是代码问题了。

开始排查相关模块的代码,最终在代码中找到了问题。一个接口有误,并被其他服务频繁调用导致的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值