We have a .NET 2.0 Remoting server running in Single-Call mode under IIS7. It has two APIs, say:
- DoLongRunningCalculation() - has a lot of database requests and can take a long time to execute.
- HelloWorld() - just returns "Hello World".
We tried to stress test the remoting server (on a Windows 7 machine) in a worst case scenario by bombarding it randomly with the two API calls and found that if we go beyond 10 client requests, the HelloWorld response (which generally is less than 0.1 sec) starts taking longer and longer going into many seconds. Our objective is that we dont want to have the long-running remoting calls to block the short-running calls. Here are the performance counters for ASP.NET v2.0.50727 if we have 20 client threads running:
- Requests Queued: 0
- Requests Executing: (Max:10)
- Worker Processes Running: 0
- Pipeline Instance Mode: (Max:10)
- Requests in Application Queue: 0
We've tried setting maxConcurrentRequestsPerCPU to "5000" in registry as per Thomas's blog: ASP.NET Thread Usage on IIS 7.0 and 6.0 but it hasn't helped. Based on the above data, it appears that the number of concurrent requests is stuck at 10.
So, the question is:
- How do we go about increasing the concurrent requests? The main objective is that we don't want to have the long-running remoting calls to block the short-running calls.
- Why are the Max Requests Executing always stuck at 10?
Thanks in advance.