第一次亲临生产OOM现场

下午,有同事过来反馈说调用统一消息服务异常了,紧接着企业微信也收到若干其他部门同事反馈,调用超时,接着就是服务器告警,剩余内存不足10%。

直接登陆目标服务器,还登毛的堡垒机,我和华子哥一人负责一台服务器,ssh 127.0.0.1登陆服务器。

先看下top,M;内存占用率确实高,坑爹的服务器上面竟有4个java应用进程。其中一个进程占用率已经达到35%,一直高居不下。加上起它三个进程,内存基本90以上了。

使用jmap -heap pid;看下该进程的内存情况,老年代1.2g,基本已经占满了,统一服务都运行n久了,不可能现在才暴露出问题,初步怀疑是某个傻X发大内容消息。

使用jstat -gc pid 1000 10;看下该进程现在的回收情况,full gc一直在勤劳地回收着,应用还跑毛线。

二话不说,我负责查看日志,华子哥把其中一台服务器重启了。日志中到处可见OOM error,gc overhead limit exceeded。基本确定了是STW导致的应用瘫痪,于是我也把服务器重启了。

华子哥tail实时查看日志,刚起的服务突然被满屏的一大串clickhouse相关内容占据。看着费劲,使用sz msg.log;将日志文件下载下来,定位到错误日志,单独把请求拿出来,想直复制到企微群里,可惜内容过大无法粘贴。

粗略计算了下,一条消息内容占用4M空间,一直在发,几百条就能把你搞死。看了下消息模版,立马停用模版,减小伤害。然后找网络拉黑这个傻X的ip地址。

电联该模版使用者,竟然在生产无脑测试。将所谓的clickhouse的一堆错误日志都发了过来。

再次排查日志,发现还有数据库无法get连接异常,数据库表字段限制长度512,4M的数据肯定处理失败。下一步准备合理限制下payload大小。

到这里基本排查完毕了,前后大概15分钟,虽说是亲临生产现场,但也是多见少怪了。

觉得有用点个赞,喜欢请关注:同名公众号【码农小麦】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农小麦

一起学习共同进步

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值