I'm investigating some performance improvements that can be made to our web server and ASP.NET application. This 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 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 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?