基本介紹
- 中文名:執行緒轉儲
- 外文名: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放到另外的執行佇列里去執行 。