服务器cpu 负载过高,定位异常代码
1. 输出具有最高 CPU 使用率的进程的 PID,以及其父进程 PID、内存使用情况和命令行。
ps -eo pid,ppid,%mem,%cpu,cmd --sort=-%cpu | head -n 2
cpu最高的进程PID为:24687
2. 找到负载最高的线程PID:
top -Hp 24687
可以看出最高CPU使用率PID为24699
3.将线程PID转换为 16进制,为后面查找 jstack 日志做准备
printf "0x%x\n" 24699
4. jstack 进程PID | vim +/十六进制线程PID -
jstack 24687|vim +/0x607b -