CPU占用率很高,响应很慢
有的时候我们会发现CPU占用率很高,系统日志也看不出问题,那么这种情况下,我们需要去看一下运
行中的线程有没有异常。
执行 curl http://127.0.0.1:8088/loop 这个方法,会出现一个线程死循环的情况。
通过 top -c 动态显示进程及占用资源的排行榜,从而找到占用CPU最高的进程PID,得到的
PID=80972然后再定位到对应的线程, top -H -p 80972 查找到该进程中最消耗CPU的线程,得到
PID=81122
通过 printf "0x%x\n" 81122 命令,把对应的线程PID转化为16进制
截止执行这个命令 jstack 80972 | grep -A 20 0x13ce2 查看线程Dump日志,其中-A 20表示
展示20行, 80972表示进程ID, 0x13ce2表示线程ID
从上述内容可以看出,是WhileThread.run方法中,执行的逻辑导致CPU占用过高。
 posted on 2021-05-17 00:48  sunnyBalckCat  阅读(47)  评论(0编辑  收藏  举报