天天看點

Jstack分析工具——IBM Thread and Monitor Dump Analyzer for Java

(1)最新版本V4.6.9下載下傳位址:https://www.ibm.com/support/pages/ibm-thread-and-monitor-dump-analyzer-java-tmda,具體使用幫助也可以在該頁面檢視。

Jstack分析工具——IBM Thread and Monitor Dump Analyzer for Java

(2)需要本地安裝JDK并配置JAVA環境變量。

(3)之後使用java -jar jca469.jar即可打開工具。

Jstack分析工具——IBM Thread and Monitor Dump Analyzer for Java
Jstack分析工具——IBM Thread and Monitor Dump Analyzer for Java

直接将dump出來的堆棧資訊,打開,便可分析。

如打開之前模拟CPU 100%使用jstack列印輸出的堆棧資訊檔案test.out

Jstack分析工具——IBM Thread and Monitor Dump Analyzer for Java

在Thread Dump List中右鍵可以檢視Thread詳細資訊。

Jstack分析工具——IBM Thread and Monitor Dump Analyzer for Java
在IBM Thread and Monitor Dump Analyzer for Java工具中,請求線程可分為以下幾種狀态:
  1.死鎖,Deadlock(重點關注)
  2.執行中,Runnable(重點關注)
  3.等待資源,Waiting on condition(重點關注)
  4.等待監控器檢查資源,Waiting on monitor
  5.暫停,Suspended
  6.對象等待中,Object.wait()
  7.阻塞,Blocked(重點關注)
  8.停止,Parked
  Deadlock:死鎖線程:一般指多個線程調用間,進入互相資源占用,導緻一直等待無法釋放的情況。
  Runnable:一般指該線程正在執行狀态中,該線程占用了資源,正在處理某個請求,有可能正在傳遞SQL到資料
  庫執行,有可能在對某個檔案操作,有可能進行資料類型等轉換。
  Waiting on condition:等待資源,如果堆棧資訊明确是應用代碼,則證明該線程正在等待資源,一般是大
  量讀取某資源,且該資源采用了資源鎖的情況下,線程進入等待狀态,等待資源的讀取。又或者,
  正在等待其他線程的執行等。
  Blocked:線程阻塞,是指目前線程執行過程中,所需要的資源長時間等待卻一直未能擷取到,被容器的線程管      
Jstack分析工具——IBM Thread and Monitor Dump Analyzer for Java

更詳細使用僅分析參見:https://blog.csdn.net/weixin_30657541/article/details/98034829

繼續閱讀