I have a Windows Server 2008 R2 server running some web services through IIS 7. The web services run in integration mode with .NET Framework 2.0. The web services communicate with each other and with web services hosted on another machine (in function of specific workflows).
I have followed several guideliness found, such that I made the following configurations: I have added in the C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG\machine.config file the following line:
<processModel autoConfig="false" minWorkerThreads="100" maxWorkerThreads="200" />
I have added in the C:\Windows\Microsoft.NET\Framework64\v2.0.50727\Aspnet.config file the following line:
<applicationPool maxConcurrentRequestsPerCPU="5000" maxConcurrentThreadsPerCPU="0" requestQueueLimit="5000"/>
I have added throttling for each web service
<serviceThrottling maxConcurrentCalls="5000" maxConcurrentInstances="5000" maxConcurrentSessions="5000"/>
During load tests I observed that the server didn't support more request, even if the processor was not loaded. After verifying that my code was not the problem, I have used performance monitor to see the thread count for w3wp/v3svc_w3wp. The maximum number of threads is 512, but no matter the load I was pushing, the total number of threads was only 16 (v3svc_w3wp -> Total -> Total Threads). But the thread count associated with the processes running in IIS Web Garden was 81 (Perf Mon, Process-> w3wp -> Thread Count).
Am I missing something in the configuration? How can I ensure the usage of more threads such that my server increase it's capacity?