Tomcat CPU占用100%异常分析与处理

原创
2018/06/09 12:49
阅读数 1.3W

其实好像也没有啥要处理的。分析出来了,问题自然就不再是问题了~

异常现象

公司使用阿里云ECS,其实我就是打杂的啦~ 写写代码、部署下服务、申请个语音验证码服务啥的.......

开通了阿里云监控服务。然后发现某个主机CPU使用率接近100%。

开始分析

查看主机进程

发现CPU占用过高的进程。其实也就是Java啦

查看该进程下面的线程

可以看到好多CPU一直都占用比较高的线程。例如 TID: 11862 这个

使用jstack查看堆栈信息

需要现将 TID 转换成16进制。

[~]# printf "%x\n" 11862
2e56

然后就可以使用jstack进行查看了。

不过要注意的是:jre是没有jstack的,需要jdk。同时,你也不能在安装jre的环境下面,单纯的将jstack拷贝过来,因为它还需要其他的依赖。

然后,就可以根据提示去源码里面找问题了。

备注

理论上生产主机是不能这样的。

  • 禁止root账号登录
  • 尽量不要安装额外的软件。例如htop
  • 主机不能直接暴露公网环境
  • 不要安装jdk
  • 还有最重要的一条。测试不全面,出现了大漏洞~
展开阅读全文
加载中

作者的其它热门文章

打赏
1
11 收藏
分享
打赏
4 评论
11 收藏
1
分享
返回顶部
顶部