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
下面可以看出是哪行代碼導緻,檢視那行代碼發現有死循環。跟蹤解決完畢。
---------------------------------------------------------------
jps主要用來輸出JVM中運作的程序狀态資訊。文法格式如下:
jps [options] [hostid]
參見:http://my.oschina.net/feichexia/blog/196575