all groups > dotnet clr > january 2008 >
You're in the

dotnet clr

group:

!threadpool SOS command output


!threadpool SOS command output Günter Prossliner
1/16/2008 11:13:22 AM
dotnet clr:
Hello!

I have the following SOS output:

0:000> !threadpool
CPU utilization 100%
Worker Thread: Total: 2 Running: 0 Idle: 2 MaxLimit: 25 MinLimit: 2
Work Request in Queue: 0
--------------------------------------
Number of Timers: 3
--------------------------------------
Completion Port Thread:Total: 5 Free: 0 MaxFree: 4 CurrentLimit: 2 MaxLimit:
25 MinLimit: 2


I cannot find anything about the "Completion Port Thread" counters. The
MaxLimit has the value that is set within the application by the
System.ThreadPool class. But what meens "CurrentLimit" or "MaxLimit"? And
specially: What meens "Free: 0"? If it meens that there are no threads free
for IO Completions that would be also the observed behavior.


Any toughts?



GP

Re: !threadpool SOS command output Vadym Stetsiak
1/18/2008 11:18:28 AM
Hello, Günter!

According to the SOS output you have:
- something is utilizing your CPU on 100%
- worker threads aren't doing anything
- there are three timers that use threadpool
- max number of completion port threads that can be creates is 25.
- there 5 completion port threads doing something

IMO you need more details like !threads command.

Also have a look at (
http://blogs.msdn.com/tess/archive/2006/02/23/asp-net-performance-case-study-web-service-calls-taking-forever.aspx )
..

HTH
--
With best regards, Vadym Stetsiak.
Blog: http://vadmyst.blogspot.com

You wrote on Wed, 16 Jan 2008 11:13:22 +0100:

GP> Hello!

GP> I have the following SOS output:

GP> 0:000> !threadpool
GP> CPU utilization 100%
GP> Worker Thread: Total: 2 Running: 0 Idle: 2 MaxLimit: 25 MinLimit: 2
GP> Work Request in Queue: 0 --------------------------------------
GP> Number of Timers: 3 --------------------------------------
GP> Completion Port Thread:Total: 5 Free: 0 MaxFree: 4 CurrentLimit: 2
GP> MaxLimit:
GP> 25 MinLimit: 2


GP> I cannot find anything about the "Completion Port Thread" counters.
GP> The
GP> MaxLimit has the value that is set within the application by the
GP> System.ThreadPool class. But what meens "CurrentLimit" or
GP> "MaxLimit"? And specially: What meens "Free: 0"? If it meens that
GP> there are no threads free for IO Completions that would be also the
GP> observed behavior.


GP> Any toughts?



GP> GP



Re: !threadpool SOS command output Richard Blewett
2/25/2008 12:18:10 PM
You might also want to have a look at the !runaway command to see which
thread(s) is utilizing the CPU so heavily

--
Regards

Richard Blewett
DevelopMentor
http://www.dotnetconsult.co.uk/weblog2


[quoted text, click to view]
AddThis Social Bookmark Button