Breaking News

"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