java程序CPU占用过高问题排查过程

  • Post author:
  • Post category:java


首先查看系统资源占用信息,TOP看一下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fYErCSi4-1585028520858)(C:/Users/zhrt/AppData/Local/YNote/data/qqB3B79EED5C527809AC4CBBEA9D0CC0AA/7214e7ac525d4d009ab1d7b49e36caa3/clipboard.png)]

发现正在运行的JAVA项目CPU占用率很高,百分之200左右了,那么问题一定出在这个程序中

命令:查询那个线程CPU占用率很高

ps -mp pid号 -o THREAD,tid,time|more

ps -mp 30871 -o THREAD,tid,time|more

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Np816Uyh-1585028520860)(C:/Users/zhrt/AppData/Local/YNote/data/qqB3B79EED5C527809AC4CBBEA9D0CC0AA/ca093c591c03433c80a138415be359b4/clipboard.png)]

再通过ps命令查看这个程序的线程信息,tid代码线程ID,time代表这个线程的已运行时间

由上面TOP可知进程ID为15669

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mMCleg6D-1585028520861)(C:/Users/zhrt/AppData/Local/YNote/data/qqB3B79EED5C527809AC4CBBEA9D0CC0AA/20617f45a6fb4c3f94767b2945ec43d0/clipboard.png)]

于是可以看到这个进程中有3个线程的CPU占用率很高,并且它们目前也运行了13分钟了,它们的TID分别为16068,16069,16071


进制转换,2HEX

再将这3个TID转为16进制,为等会在jstack中查找方便

printf “%x\n” 14028

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aRqqojR7-1585028520863)(C:/Users/zhrt/AppData/Local/YNote/data/qqB3B79EED5C527809AC4CBBEA9D0CC0AA/2a5ea1486d5f4143bd00fbfbe0253863/clipboard.png)]

得到这三个数的16进制为别为3ec4,3ec5,3ec7


jstack查看进程信息

有了线程ID的16进制后,再在jstack中查看进程堆栈信息(之所有拿到TID信息,主要是为了查找方便)

通过jstack -pid 再grep查询

jstack 13829|grep -C 80 0x37af #前后查80行

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yWqVT4ME-1585028520866)(C:/Users/zhrt/AppData/Local/YNote/data/qqB3B79EED5C527809AC4CBBEA9D0CC0AA/4924d3791a1d4b6cadf061462a530167/clipboard.png)]

从这里能看出,这3个线程目前还处于运行状态的

再通过jstack查看详细点的信息

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nFDzhDRs-1585028520873)(C:/Users/zhrt/AppData/Local/YNote/data/qqB3B79EED5C527809AC4CBBEA9D0CC0AA/b6ba86011c0f4b749716107bbacd1f2b/clipboard.png)]

其中显示出了较为详细的代码信息

例如短网址gc

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KKaMH3R1-1585028520875)(C:/Users/zhrt/AppData/Local/YNote/data/qqB3B79EED5C527809AC4CBBEA9D0CC0AA/e0afd0c7edf643aebbd6108b639deb16/clipboard.png)]


本地代码问题排查

开发仔细看了代码后,才发现了问题;此处的代码问题在于:如果paramMap不为空,但dateParamMap为空的,那么程序就会出现死循环。真是一个大BUG啊!

在这里插入图片描述



版权声明:本文为qq_31555951原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。