Java应用CPU占用高故障排查

查找 CPU 占用高的进程ID

ps aux

获取 CPU 占用高的线程 ID

ps -mp <pid> -o THREAD,tid,time

转换线程 ID 为16进制

printf "%x\n" <tid>

输出线程栈信息

jstack <pid> |grep <十六进制tid> -A 100

如果栈信息比较长可以设置输出的行数大点^_^

拿到栈信息后,就可以根据输出内容定位错误了。