ASP.NET web garden - max worker threads
I'm investigating some performance improvements that can be made to our web server and ASP.NET application. [This][1] page contains a few things that we can do.

We currently have two worker processes running as a garden.  Do each of these worker processes have their own ASP.NET threadpool?  Or do both of these worker processes share a single threadpool and the max number of worker threads is shared across these processes?

[This][2] post seems to suggest that the two processes share a common ASP.NET threadpool.

> All w3wp.exe threads do is take
> requests from HTTP.SYS queue, process
> it, and hand the request to
> ASPNET_ISAPI.DLL, who then deposits
> those requests into the ASP.Net
> request queue, and the ASP.Net threads
> service that queue.

But [this][3] post suggests that each worker process contains their own ASP.NET threadpool. 

> Each process (w3wp.exe) has its own
> CLR thread pool which has the
> configured maxworkerthreads value (20
> default).

Which is correct?


  [1]: http://support.microsoft.com/kb/821268
  [2]: http://blogs.msdn.com/b/david.wang/archive/2006/03/14/thoughts-on-application-pools-running-out-of-threads.aspx
  [3]: http://forums.asp.net/t/1162420.aspx
ASP.NET web garden - max worker threads
===

I'm investigating some performance improvements that can be made to our web server and ASP.NET application. [This][1] page contains a few things that we can do.

We currently have two worker processes running as a garden.  Do each of these worker processes have their own ASP.NET threadpool?  Or do both of these worker processes share a single threadpool and the max number of worker threads is shared across these processes?

[This][2] post seems to suggest that the two processes share a common ASP.NET threadpool.

> All w3wp.exe threads do is take
> requests from HTTP.SYS queue, process
> it, and hand the request to
> ASPNET_ISAPI.DLL, who then deposits
> those requests into the ASP.Net
> request queue, and the ASP.Net threads
> service that queue.

But [this][3] post suggests that each worker process contains their own ASP.NET threadpool. 

> Each process (w3wp.exe) has its own
> CLR thread pool which has the
> configured maxworkerthreads value (20
> default).

Which is correct?


  [1]: http://support.microsoft.com/kb/821268
  [2]: http://blogs.msdn.com/b/david.wang/archive/2006/03/14/thoughts-on-application-pools-running-out-of-threads.aspx
  [3]: http://forums.asp.net/t/1162420.aspx