Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Increasing the Concurrent Requests on a .NET Remoting app under IIS

We have a .NET 2.0 Remoting server running in Single-Call mode under IIS7. It has two APIs, say:

  1. DoLongRunningCalculation() - has a lot of database requests and can take a long time to execute.
  2. 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:

  1. Requests Queued: 0
  2. Requests Executing: (Max:10)
  3. Worker Processes Running: 0
  4. Pipeline Instance Mode: (Max:10)
  5. 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:

  1. 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.
  2. Why are the Max Requests Executing always stuck at 10?

Thanks in advance.

like image 777
hpatil Avatar asked Nov 05 '22 10:11

hpatil


1 Answers

Windows 7 has a 20 inbound connection limit. XP and prior was limited to 10 (not sure about Vista). This is likely the cause of your drop in performance. Try testing on an actual server OS that doesn't have an arbitrary connection limit.

like image 143
Chris Avatar answered Nov 15 '22 11:11

Chris