Analiza wyników wątków! Threadpool i! W windbg
Wygenerowałem zrzuty na czterech serwerach i analizuję dane wyjściowe! Threadpool i! Threads. Zauważyłem mniej więcej spójne dane wyjściowe:
0:024> !threadpool CPU utilization 0% Worker Thread: Total: 2 Running: 0 Idle: 2 MaxLimit: 200 MinLimit: 2 Work Request in Queue: 0 Number of Timers: 27 Completion Port Thread:Total: 2 Free: 0 MaxFree: 4 CurrentLimit: 2 MaxLimit: 200 MinLimit: 2<p></p>
!threads -special ThreadCount: 32 UnstartedThread: 0 BackgroundThread: 19 PendingThread: 0 DeadThread: 13 Hosted Runtime: no
My questions are:
1)How can I determine what the source of those 27 timers are?
2)What does 13 dead threads mean?
3)One of my threads is marked as having a lock. If i switch to that thread and run !clrstack, i see the following - is it related to my timers?
0:027> !clrstack OS Thread Id: 0x14cc (27) *** WARNING: Unable to verify checksum for System.ni.dll Child-SP RetAddr Call Site 000000000ca6e1a0 000007fef5c06477 System.Threading.WaitHandle.WaitAny(System.Threading.WaitHandle[], Int32, Boolean) 000000000ca6e200 000007fef673175b System.Net.TimerThread.ThreadProc() 000000000ca6e2d0 000007fef67c95fd System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) 000000000ca6e320 000007fef84d1552 System.Threading.ThreadHelper.ThreadStart()