用windbg檢查.NET執行緒池設定

weixin_34162629發表於2014-06-03

比如我們在machine.config中進行了這樣的設定(8核CPU):

<processModel  maxWorkerThreads="100" maxIoThreads="100" minWorkerThreads="50" minIoThreads="50"/>

那如何檢查這個設定是否生效呢?答案是用windbg的!theadpool命令進行檢視。

操作步驟如下:

1. 執行windbg,File->Attach a Process,選擇一個w3wp.exe程式,然後點選OK。

2. 在命令視窗輸入命令:

.load C:\Windows\Microsoft.NET\Framework64\v4.0.30319\sos.dll

3. 接著輸入命令:

!threadpool

得到如下結果:

Worker Thread: Total: 17 Running: 0 Idle: 17 MaxLimit: 800 MinLimit: 400
Work Request in Queue: 0
--------------------------------------
Number of Timers: 2
--------------------------------------
Completion Port Thread:Total: 2 Free: 2 MaxFree: 16 CurrentLimit: 2 MaxLimit: 800 MinLimit: 400

800=100*8, 400=50*8,設定正確。

【參考資料】

使用Windbg找出死鎖,解決生產環境中執行的軟體不響應請求的問題

相關文章