ThreadDump

ThreadDump

Thread Dump是非常有用的診斷Java套用問題的工具,每一個Java虛擬機都有及時生成顯示所有執行緒在某一點狀態的thread-dump的能力。雖然各個 Java虛擬機thread dump列印輸出格式上略微有一些不同,但是Thread dumps出來的信息包含執行緒;執行緒的運行狀態、標識和調用的堆疊;調用的堆疊包含完整的類名,所執行的方法,如果可能的話還有原始碼的行數。

基本介紹

  • 中文名:執行緒轉儲
  • 外文名:ThreadDump
  • 屬性:診斷Java套用問題的工具
  • 能力:某一點狀態的thread-dump
  • 執行緒:運行狀態、標識和調用的堆疊
特點,診斷的問題,常見執行緒狀態,

特點

1. 能在各種作業系統下使用
2. 能在各種Java套用伺服器下使用
3. 可以在生產環境下使用而不影響系統的性能
4. 可以將問題直接定位到應用程式的代碼行上

診斷的問題

1. 查找記憶體泄露,常見的是程式里load大量的數據到快取
2. 發現死鎖執行緒

常見執行緒狀態

IBM JVM常見執行緒狀態
在IBM JVM產生的javacore或者Threaddump檔案中
Idle執行緒:一個已經準備好接受請求的執行緒,但是沒有和外掛程式或者客戶端建立連線
Keep-Alive執行緒:是一個已經準備好接受請求的執行緒,並且已經和外掛程式或者客戶端建立連線
正在接受請求的執行緒:是一個執行緒正在讀取request的內容或者頭部
Sun JVM的常見執行緒狀態
對於thread dump信息,主要關注的是執行緒的狀態和其執行堆疊
執行緒的狀態一般為三類
Runnable(R):當前可以運行的執行緒
Waiting on monitor(CW):執行緒主動wait
Waiting for monitor entry(MW):執行緒等鎖
一般關注的都是第一和第三種狀態的執行緒
Cpu很忙則關注runnable的執行緒
Cpu閒則關注waiting for monitor entry的執行緒
一種典型的死鎖是由於在server端套用(比如servlet)中請求由同一weblogic實例server的資源,解決辦法就是將該servlet放到另外的執行佇列里去執行 。

相關詞條

熱門詞條

聯絡我們