在线上很容易出现java的cpu占用100%的问题,导致的情况可能是一直100%而使应用崩溃,或者很快CPU就降低使问题不容易定位,一般在这种线上CPU问题时,可以通过以下方式进行定位问题所在。
找出CPU占用最高的进程PID
top
找出占用高的线程tid
top -H -p PID
将线程号转成16进制
printf "%x\n" tid
生成此线程当前的线程文件
jstack 6007> /tmp/6007.stack
vim /tmp/6007.stack
/179d