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

为什么80%的码农都做不了架构师?>>>   hot3.png

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

异常现象

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

开通了阿里云监控服务。然后发现某个主机CPU使用率接近100%。 Tomcat CPU占用100%异常分析与处理_第1张图片

开始分析

查看主机进程

发现CPU占用过高的进程。其实也就是Java啦 Tomcat CPU占用100%异常分析与处理_第2张图片

查看该进程下面的线程

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

Tomcat CPU占用100%异常分析与处理_第3张图片

Tomcat CPU占用100%异常分析与处理_第4张图片

使用jstack查看堆栈信息

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

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

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

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

Tomcat CPU占用100%异常分析与处理_第5张图片

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

Tomcat CPU占用100%异常分析与处理_第6张图片

呵呵~

备注

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

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

转载于:https://my.oschina.net/lpe234/blog/1827276

你可能感兴趣的:(Tomcat CPU占用100%异常分析与处理)