We are using Win 2003 sp1 with IIS 6.0 installed Default website properties connection set to 30 sec Running IIS with ASP Files, all working good
The problem is: when we have 10,000 con current session on the server, the IIS Stop Responding on port 80 and the clients get error Connection TimeOut ,
Is there any IIS or Port 80 Limits
Any Advice will be appreciated ?
the server CPU and memory are very Low
The connection limit you observe comes from HTTP.SYS because each HTTP connection takes a small chunk of kernel NonPagedPool memory.
On 32bit Windows, this memory is FAR smaller than the amount of physical memory available, around 250MB, and it will usually run out long before available physical memory and cause symptoms that look like this... especially if you have long-lived concurrent connections.
Thus, to maximize the number of concurrent users to IIS6, you want to do all of the following:
- Make the connections timeout faster (ConnectionTimeout metabase property).
- Make the connections non-keepalive (AllowKeepAlive metabase property).
- Remove any of the following artificial limits.
But, remember that HTTP.SYS is still constrained by available NonPagedPool memory, so this change only helps if you had an artificially lower limit to begin with (i.e. on 32bit Windows, if MaxConnections was set to 5,000 for whatever reason, you can remove the artificially lower limit by changing it to 100,000, but you will never get to 100K).
- Move to a Windows OS with a Memory Manager that utilizes the Dynamic Memory model, such as Windows Server 2003 SP1 64bit or Windows Vista.
This memory model removes all the hard-coded and soft-coded limits on various memory pools of Windows, such as NonPagedPool, and allows them to dynamically grow and shrink according to utilization and up to all available physical memory. This means you can add more concurrent connections by simply adding more RAM.
All of the above are EXACTLY what microsoft.com and msn.com does across all their servers that serve low-latency, high-volume traffic - such as their image servers that house static content shared across the entire web farm. At a massive scale, the speed gained from KeepAlive is not worth the concurrent users capacity lost by consuming kernel NonPagedPool memory, and they remove both artificial and soft-coded limits of NonPagedPool memory by using Windows Server 2003 SP1 64bit.