发生CPU 100%,排除CPU密集型的程序外,十有八九是由于程序出现了死循环。
1.通过top指令,看到${PID}进程CPU过高。
2.通过 pa aux | grep ${PID} 或者 ll /proc/${PID}定位出是什么进程出现问题。
3.通过 ps -mp ${PID} -o THREAD,tid,time 查看线程状态,并且定位到线程${TID}出现CPU暂用率高。
4.通过printf "%x\n" ${TID},将TID转成Hex Format
5.使用Jstack工具,打印出线程的情况 jstack ${PID} |grep ${TID} -A 50