jstack定位cpu高的方法:
1. top命令查看内存占用情况
top -H -p 进程id : 查看某个进程的线程使用情况
2. ps命令进一步了解线程情况
ps H -eo pid, tid, %cpu | grep 进程id : 查看指定进程的所有线程的cpu的占用情况,找到导致cpu高的那个异常线程id。
3. jstack 进程id : 查看某个进程的所有线程的使用堆栈信息
在该操作打印出来的信息中,有nid=0xxxx,这是表示十六进制的线程id,而第2步中打印出来的为十进制的线程id,因此,可以将第二步中的那个异常线程id从十进制转为十六进制,再从jstack打印出来的堆栈信息中找到此线程id对应的堆栈信息,从而定位到相关代码进行分析。