linux-问题排查

cpu占用100%

  1. linux服务器使用top命令查看进程,CPU占用达到100%是由进程号为30188的进程导致的

 

  1. 然后通过 top  -Hp 进程号  查看该进程中具体导致CPU使用使用率达到100%的线程,如下图:

使用printf命令将当前CPU占用高的线程ID转为 16进制形式:

printf  "%x\n" 30244 

输出结果为7624

 

  1. 这时采用jdk自带的命令 jstack 进程号(在这里是 jstack  30188) 输出(dump)线程信息。其中的nid字段即为CPU占用高的线程,在dump文件中搜索7624,定位到出问题的线程,如下图所示:

  1. 最终定位到出问题的代码是在YkController文件的551行。

查看代码发现这里出现了死循环,把while改为if即可:

 

posted @ 2022-08-02 17:13  星光闪闪  阅读(104)  评论(0)    收藏  举报