其实好像也没有啥要处理的。分析出来了,问题自然就不再是问题了~
异常现象
公司使用阿里云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
- O__O "…,还有最重要的一条。测试不全面,出现了大漏洞~