I've seen this question asked but the answer given was either insufficient or unrelated. I feel like this is a pretty simple question(s).
We have a Classic ASP app running on IIS7.5 on a Windows 2k8 server. When using perfmon I can see that the number of requests executing is something like 50 or less, while the queue size varies based on time of day. We have the max threads per cpu (under ASP in IIS GUI) set to 25, and have 8 cores, which should give us 200 max threads.
So the basic questions are as follows:
- Does one thread equal one request? If so, shouldn't number of active requests be number of threads or number of active requests, whichever is smaller? I imagine if items are piling up in the queue, then either each active request takes more than 1 thread, or IIS is limiting itself to 50 threads.
- Regardless of what I set # of threads per CPU to, and regardless of number of CPUs (we added cores recently), the # of threads w3wp is using is about 130. Why would it not fully utilize all 200? If there are items in the queue, shouldn't another thread come along and process it?
- If I use perfmon to look at "Max Threads" and "Total Threads" for w3wp, max threads is 256 (??) and Total threads is 9. Which is it? 9? 256? 130????