概述
问题现象
最近我们相关站点的docker环境出现一个奇怪的现象,大量接口超时,普遍都是几千毫秒。
问题解决
经过排查,已经确定不是被调用服务端的问题,于是开始排查我们自己的环境,发现docker容器的内存,从启动开始内存不断上升,然后找到我们的应用服务器。
1.输入top命令,查找占用cpu较大的进程,发现是java进程已经飙升90%。
2.然后拿到这个进程的pid,接着输入命令 top -Hp {pid}
3.查看这个进程下的所有线程占用情况
4.找到对应CPU较高的线程的pid,我们这边定义为tid,一般找两到三个。
5.将此tid转为16进制的 输入命令 printf “%xn” {tid}得到HTID
6.输入命令将相关上下文堆栈信息打出来 jstack {pid}|grep -i {HTID} -A 30
7.好了,可以领一个BUG了。
问题原因
结果是某种业务场景下导致的for循环,一直在new 对象,陷入循环不可自拔导致。
最后送给自己6个字:“程序员要严谨”
最后
以上就是等待蜜粉为你收集整理的tomcat应用服务器大量接口超时,内存及CPU飙升100%以上解决流程问题现象的全部内容,希望文章能够帮你解决tomcat应用服务器大量接口超时,内存及CPU飙升100%以上解决流程问题现象所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复