进程CPU飙升的排查步骤:(服务未重启,满足实时定位的情况下)
1.定位进程pid ---> 123
2.top -Hp 123 ---> 根据该命令找出该进程中cpu利用率最高的线程 ---> 456
3.将指定线程 456 转为16进制:printf "%x\n 十进制线程号"
4.拿到当前进程的线程栈: jstack 进程ID > stack.log
5.在stack.log 日志中找到对应的 CPU高的线程ID(根据16进制id进行找),找到对应线程即为有问题的线程。
1.定位进程pid ---> 123
2.top -Hp 123 ---> 根据该命令找出该进程中cpu利用率最高的线程 ---> 456
3.将指定线程 456 转为16进制:printf "%x\n 十进制线程号"
4.拿到当前进程的线程栈: jstack 进程ID > stack.log
5.在stack.log 日志中找到对应的 CPU高的线程ID(根据16进制id进行找),找到对应线程即为有问题的线程。