Hi @Antony Maxwin ,
In advanced setting of site, IIS allows you set maximum concurrent connections.
And in advanced setting of app pool, it allows you set worker processes(w3wp.exe) of app pool.
That means each application pool will start one worker process to handle requests by default, and the application which hosts on application pool supports 4294967295 concurrent connections. However, the 4294967295 does not mean that the application can really receive and process so many concurrent requests. It actually represents that http.sys can pass so many concurrent requests to other modules of IIS and asp.net routing. The number of concurrent requests that an Asp.net application can handle is also affected by the asp.net itself.
If you check the machine.config in C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config
and search <processModel>
, you will find an item like this:
This means that the .net framework will automatically configure the asp.net thread parameters for you to handle concurrent requests according to different situations. The current working thread of .net defaults to “12*CPU” (autoconfig=”true”), so if IIS has two CPUs, there will be 24 working threads.
The 500 connections you see just the number of IIS and application can create successful connection with client and won't affect the performance of server, not the number of concurrent requests that asp.net can handle at the same time. With more than 500 concurrent requests, the server needs to allocate performance to maintain connections with clients and maintain their queues. This affects the performance assigned to the worker process (w3wp.exe) and slows down application processing.
If the answer is helpful, please click "Accept Answer" and upvote it.
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.
Best regards,
Bruce Zhang