jstack 應用
首先通過:ps -ef|grep java
得到java pid
查看哪個線程占用最多資源:
找出該進程內最耗費CPU的線程,可以使用ps -Lfp pid或者ps -mp pid -o THREAD, tid, time或者top -Hp pid 命令查看這個進程下面的所有線程占用情況。
發現線程21742占用最多。
將剛剛發現占用cpu最多的線程id(21742)換算成16進制
命令:printf
"%x\n"
21742 的到 線程值 :54ee
查看jstack 生成的文件:
jstack pid | grep tid
如:jstack 21711 | grep 54ee
下面可以看出是哪行代碼導致,查看那行代碼發現有死循環。跟蹤解決完畢。