内存溢出处置记录

内存溢出处置记录

前段时间发生一起因-xmx设置过小,导致内存溢出,服务缓慢的情况,现在终于有时间,记录一下当时的处理过程。
一、情况出现
第一次业务反馈服务异常缓慢,监控显示有一台服务器cpu暴涨,紧急登录服务器,top命令找到占用cpu最高的进程,然后ps找到进程号,直接kill掉了该进程,重启服务后恢复正常。打算之后分析日志,查询导致cpu占满原因。
二、临时处理
第二天下午,原因暂时还未找到,业务再次异常,几台服务器,前后脚cpu全部占满,此次未全部重启服务,进行了临时处理。
1、 Nacos上将一台服务器离线,其余服务器重启应用,对外提供服务。
2、 离线服务器不做操作,用于问题查询。
三、故障定位
服务器配置都是16C,32G,每台服务器上面有8个服务,每个服务的-xms和-xmx的设置均为2G。(服务器背景)
查看应用日志,日志报错全都是连接数据库超时,异常,超过最大连接数。最先考虑是数据库性能问题,服务器数据库为oracle12c,排查数据库日志,全部正常,无异常日志。查询历史最大连接数200多,远未达到设置的最大连接数,查看数据库内存、cpu等历史运行状态,无异常,排除数据库问题。
问题返回应用服务器,最近新增外设数量成几何倍数增长,增长之前服务器运行无异常,考虑故障原因与并发量、应用内存有关系,简单记录处理过程
1、 top命令查看最耗cpu的进程
2、 top –Hp找到该进程最耗cpu线程
3、 jstack命令查看进程动作,发现占cpu高进程不停的在GC,大量线程并行。服务器在频繁GC但是老年代有资源一直释放不掉,造成cpu突增。
4、 定位到问题根源应该是内存溢出导致
四、处置
将服务启动脚本的-xmx增加至6G,重新启动服务,至此问题未再出现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值