I am using ASP.NET 2.0, .NET 2.0 Framework, and IIS 7. I am seeing a large queue of "requests" appear under the "worker process" option. State recorded appear to be Authenticate Request
and Execute Request Handles
more than anything else.
I have amended aspnet.config
in C:\Windows\Microsoft.NET\Framework64\v2.0.50727
(32 bit path and 64 bit path) to include:
maxConcurrentRequestsPerCPU="50000"
maxConcurrentThreadsPerCPU="0"
requestQueueLimit="50000"
I have amended machine.config
in C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG
(32-bit and 64-bit path) to include:
autoConfig="false"
maxIoThreads="100"
maxWorkerThreads="100"
minIoThreads="50"
minWorkerThreads="50"
minFreeThreads="176"
minLocalRequestFreeThreads="152"
Still I get this issue.
The issue manifests itself as a large number of requests in the Worker Process queue.
The number of current connections to the website display 500 when this issue occurs. I don't think I have seen concurrent connections over 500 without this issue occurring.
The web application slows as the requests block.
Refreshing the application pool resolves for a while (as expected) as the load is spread between the two pools.
The application pool in question FIXED REQUEST have been set to refresh on 50000.
Note: .NET 3.5 framework uses 2.0 framework appnet and machine configuration files, I believe.
Server resources (CPU, RAM) are not used to the full potential.
Ended up increasing the worker processes from 1 to 2 (web garden). Issue has not reoccurred since although were are using sessions but over the course of a month there have been no reports of session problems from end users.
EDITED TO ADD:
The specific issue was related to the generation of a extremely large CSV reports which are processed on the worker process server side, not a bug , just the way it works. HTML reports are fine, the XML transform is passed client side.
The separation of worker processes resolved the issues until the sever side xml transform to csv file creation can be passed to an addition process therefore removing any influence from other users. Was simply down to the size of the files / number of rows we were working with when trying to create CSV reports.