服务器【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