您的位置:首页 > 运维架构 > Tomcat

tomcat应用服务器大量接口超时,内存及CPU飙升100%以上解决流程

2019-03-07 18:50 1031 查看

问题现象

最近我们相关站点的docker环境出现一个奇怪的现象,大量接口超时,普遍都是几千毫秒。

问题解决

经过排查,已经确定不是被调用服务端的问题,于是开始排查我们自己的环境,发现docker容器的内存,从启动开始内存不断上升,然后找到我们的应用服务器。
1.输入top命令,查找占用cpu较大的进程,发现是java进程已经飙升90%。
2.然后拿到这个进程的pid,接着输入命令 top -Hp {pid}
3.查看这个进程下的所有线程占用情况
4.找到对应CPU较高的线程的pid,我们这边定义为tid,一般找两到三个。
5.将此tid转为16进制的 输入命令 printf “%x\n” {tid}得到HTID
6.输入命令将相关上下文堆栈信息打出来 jstack {pid}|grep -i {HTID} -A 30
7.好了,可以领一个BUG了。

问题原因

结果是某种业务场景下导致的for循环,一直在new 对象,陷入循环不可自拔导致。
最后送给自己6个字:“程序员要严谨”

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: