title: Analyzing output of !threadpool and !threads in windbg
body: <p>I have generated dumps on four servers and am analyzing the output of !threadpool and !threads. I noticed the roughly consistent following output:</p>
  
  <p><pre><code>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
  </pre></code></p>
  
  <p>My questions are:<br>
  1)How can I determine what the source of those 27 timers are?<br>
  2)What does 13 dead threads mean?<br>
  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?<br>
  <pre><code>
  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()
  </pre></code></p>