java無響應堆棧信息排查

1.先找到程序的進程id 

2.獲取進程的線程

jstack -F 18176

 

 

這個程序沒有被鎖死的線程,上圖信息中會寫哪一個線程被鎖死了

3 使用jdb連接JVM查看線程情況

jdb -connect sun.jvm.hotspot.jdi.SAPIDAttachingConnector:pid=18176

4.查看線程列表

5.獲取某一個線程的堆棧信息

 這樣能看見某一個線程的代碼執行情況

 

 

java 查看內存信息shell

jstat -gcutil  18176

 

 

 

查看某進程下所有線程使用cpu的列表

pidstat -p < PID > 1 3 -u -t

找到cpu較高的線程id 29900 10進制轉化爲16進製爲 74CC

查看線程74CC的堆棧信息輸出到當前目錄stack.log文件中

jstack pid > stack.log

 

 

線程的狀態:
NEW                     未啓動的。不會出現在Dump中。
RUNNABLE          在虛擬機內執行的。
BLOCKED            受阻塞並等待監視器鎖。
WATING               無限期等待另一個線程執行特定操作。
TIMED_WATING  有時限的等待另一個線程的特定操作。
TERMINATED      已退出的。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章