服务器【CPU飙高】排查

 

一、  top 命令查看CPU占用最高的【进程号】(PID)

 

二、  ps -aux|grep java查看Java项目的【进程号】

 

 

 

三、  top -H -n 1 -p PID(这里的PID是6315【进程号】) 然后通过命令查找对应进程下【线程】的状态

可以看到6325【线程】cpu极高

 

 

 

 

四、  然后通过 jstack -l PID(这里的PID是6315【进程号】) > ./jstack.log 命令输出进程的线程文件

注意:这里的PID 是【进程号】,这里我是6315

 

 

 

 

五、查看刚输出的jstack.log文件,查看【线程】详情注意这里的【线程】PID是第三步PID,还要转成16进制

例如:1、我这里PID【线程】就是6325 转成16进制就是18b5;

   2、服务器的PID是10进制,转成16进制,

   3、在线十进制转16进制:https://c.runoob.com/front-end/58/

   4、这里可以通过vim 命令打开log文件;然后可以 /+字符串 例如:/18b5直接向下搜索所在位置,可以定位大概代码位置。

 

 

 

 参考:https://blog.csdn.net/weixin_44102992/article/details/126024255

posted @ 2023-02-10 15:23  蛋挞小子  阅读(167)  评论(0编辑  收藏  举报