java程序异常占满cpu

记一次java程序异常占满cpu事故

在运维的服务器中,一台用于功能备用服务器发生告警snmp不可达,经过判断,能正常ping通,但是还会不间断的报这个故障,然后就考虑到会不会是snmp线程问题,打开top面板,果然就看到了一堆cpu100%的进程在这里插入图片描述

如何解决

尝试过把这些进程一个个杀死后,发现并没有解决cpu100%问题,java进程还是会不断产生java进程,百度探寻也无果,然后就开始准备找程序的源头,才发现因为cpu吃满了,很多命令都执行不下去,特别慢,不好排错,然后想到的办法就是先重启,把cpu降下去再来找问题
在这里插入图片描述

申请重启

重启后cpu正常,但是弹出来一堆启动命令才发现应该是程序不能正常启动,但是设计的逻辑因为没有启动成功让他无限循环去启动在这里插入图片描述
打开命令行,然后在init.d里注释掉了这几行脚本,观察了一下发现没有产生cpu飙升就告一段落了
在这里插入图片描述

再次发生

一周后监控反馈发现还有这个问题存在snmp不可达,上服务器排查果然还是cpu问题,思索了一下程序为什么又自己跑起来了,除了开机自启动,应该会在定时任务里,果然在root用户的定时任务里发现了这个,每10分钟就会去跑这个脚本,脚本也写得不规范在这里插入图片描述
去掉之后再多观察两天服务器看看,会不会发生异常

总结

1.如果服务器发生因为不断产生进程导致服务器cpu异常高,首先要检查脚本,查看在运行的.sh程序
2.检查定时任务和开机自启动项让他自己启动的地方,最有可能产生僵尸程序
3.解决cpu问题后需要给一个观察期时间,2-3天进去巡检看看还会不会有别的异常

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值