jstack分析cpu负载过高原因

1、用ps -ef | grep tomcat-查出tomcat运行的进程id
jstack分析cpu负载过高原因

2、用top -H -p pid 查询tomcat进程下所有线程的运行情况(shift+p 按cpu排序,shift+m 按内存排序)
jstack分析cpu负载过高原因

3、导出java线程dump文件到某目录
jstack分析cpu负载过高原因
4.打印CPU消耗较多的线程id
jstack打印的线程堆栈中线程id是十六进制的,所以需要将十进制的线程id转换为十六进制

jstack分析cpu负载过高原因

5.在导出的17323.stack文件中搜索打印出来的0x4546,就能找到引起cpu过高的线程。
jstack分析cpu负载过高原因