"Request execution limit" on IIS, Depending on the version and edition of Windows
Did you know there's a "request execution limit" on IIS? It's 3, 10, or unlimited, depending on the version of Windows and edition.
The Home/Workstation versions of Windows have intentionally feature-limited versions of IIS.
Some will only support one website bound to a single IP address and/or a limited number of simultaneous users browsing the site.
You should always use a Server version of Windows for IIS in a production environment.
| Windows Server 2016 | IIS v10.0 | |
| Server: | Server OS = No Limits | |
| Windows 10 | IIS v10.0 | |
| Pro: | simultaneous request execution limit of 10, allows multiple sites *We Think* | |
| Enterprise: | simultaneous request execution limit of 10, allows multiple sites *We Think* | |
| Education: | unknown at this time | |
| IoT Core: | unknown at this time | |
| Windows 8.1 | IIS v8.5 | |
| RT: | No IIS | |
| Basic: | simultaneous request execution limit of 3, allows multiple sites | |
| Professional: | simultaneous request execution limit of 10, allows multiple sites | |
| Enterprise: | simultaneous request execution limit of 10, allows multiple sites |
Background
I was doing some load testing noticed that I couldn't get beyond 10 requests running at a time. I suspected the problem may be IIS.
But IIS does have a "request execution limit", for all but Server editions of Windows, IIS has no request execution limit."
A workaround for this limit: multiple worker processes
With respect to this limit, here's a valuable bonus tip that the limit is really per application pool, or more technically per worker process. So you can certainly get more request simultaneously against your box by using multiple app pools.
But perhaps you want to have more requests against a single site, which obviously can be connected only to a single app pool.
There's still good news: You can increase the number of worker processes per app pool in the "advanced settings" for a given app pool (right-click on the app pool), increasing "Maximum Worker Processes" from the default of 1. (Some will recognize that as being the same as what was known as "web gardens" for app pools in IIS.)
For those new to them, whether creating new app pools or more worker processes for an app pool, for each new worker process, you'll see a new w3wp.exe in task manager.
A caution, for those using ASP.NET, about setting more than one worker process per app pool
Finally, there's a caution to consider if you decide to increase the number of worker processes.
At least back in IIS, ASP.NET app using sessions that are "inproc" (or in memory), the default, there is a problem with using multiple worker processes (web gardens), in that the sessions are not replicated among the worker processes. That may not be an issue for the OP, so I'll say you can learn more at an entry I did a few years ago.

No comments