Does IIS 7 have limit of simultaneous requests?

iburlakov picture iburlakov · Jan 27, 2010 · Viewed 32.8k times · Source

Does IIS 7 have some limit of simultaneous requests? I'm using Windows Server 2008.

Thanks in advance.

Answer

charlie arehart picture charlie arehart · Feb 3, 2011

Yes, IIS 7 can have a limit of simultaneous requests, depending on the edition of Windows you're using. I see people often assert (as others have here) that somehow the limits have been lifted with IIS 7. It's just not always so, and depends on whether running 2008, 7, or Vista.

Let's start with Win2k8, since you mention using that. The following document suggests that 2k8 has only a server version, and with no limits. "With Windows Server 2008, IIS 7.0 ...there is no request execution limitation." (source: http://learn.iis.net/page.aspx/479/iis-70-features-and-vista-editions/)

That page also shows a table with other versions, but though it's not clear, those apply to Vista. Here are the limits for IIS 7 (from that table) on those versions: Basic & Starter editions: 3 requests, for Premium: 3, for Pro: 10, and for Server: unlimited.

I've found similar limits, documented here: http://technet.microsoft.com/en-us/library/cc268241.aspx. "With Starter and Home Basic editions of Windows Vista, the simultaneous request execution limit for IIS is three for Windows Vista Home Premium. ...For Windows Vista Business, Enterprise, and Ultimate edition...the simultaneous request execution limit is ten. ..With server editions of Window, IIS 7.0 has no request execution limit."

Finally, while I've not found a document stating the limits for Windows 7, I have confirmed the same limit of 3 on my copy of Windows 7 Home Premium. (It's curious that the learn.iis.net page above does discuss both Vista and Windows 2008, but makes no mention of Windows 7.)

With respect to this limit, if it's a problem for you or other readers, here's a potentially valuable bonus tip that I've not seen documented anywhere: 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 6.)

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.

Finally, there's a caution to consider if you decide to increase the number of worker processes. At least back in IIS 6, I documented that if you're running an 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: http://bluedragon.blog-city.com/lost_sessions_webgardens_sessionstate.htm.