jstack
2019-01-25 本文已影响4人
lockdreamer
top查看占用cpu较高的进程
![](https://img.haomeiwen.com/i14257804/e7a7cc98a2afa26a.png)
1、查看jstack信息
jstack pid
jstack 166176
![](https://img.haomeiwen.com/i14257804/868788d123ef049c.png)
2、查出进程id后,通过如下命令查看该进程中每个线程的资源使用情况
top -Hp 166176
![](https://img.haomeiwen.com/i14257804/9b83ac22a3fa720b.png)
3、得到进程的十六进制值
TIME列就是各个Java线程耗费的CPU时间,CPU时间最长的是线程ID为21742的线程,用
printf "%x\n" 169527
得到169527的十六进制值为29637
4、查看堆栈信息
下一步终于轮到jstack上场了,它用来输出进程169527的堆栈信息,然后根据线程ID的十六进制值grep,如下:
jstack 169527|grep 29637
![](https://img.haomeiwen.com/i14257804/882edc37d8ff3d9e.png)
详细信息
![](https://img.haomeiwen.com/i14257804/a08907016a929a7a.png)