views:

2759

answers:

6

We have a site which is running on a windows 2003 cluster with 2 64bit machines.

The site needs to be able to cope with over 20,000 concurrent users

One of the things that the site does is to allow the download of a 2MB file (which is cached in memory).

We have low CPU and memory usage. We also have surplus bandwidth.

It appears that we are running out of connections due the time it takes the user to download the file (some users have slow internet connections).

In the IIS log we get HTTP 503 errors.

In the HTTPErr log we get mainly Connection_Dropped DefaultAppPool with some Timer_EntityBody DefaultAppPool.

Question is: How can we configure IIS to allow more connections? Or is there something that I am missing here?

Thanks

Shiraz

A: 

I don't think you are going to be able to get 20000 concurrent connections on any single machine - you may need to think about scaling out to more than one web server.

1800 INFORMATION
"a site which is running on a windows 2003 cluster with 2 64bit machines"...
Oli
A: 

I'm not sure if this applies to IIS (though I don't see why it wouldn't) but on Linux servers, I find turning off the keep-alive helps limit the number of concurrent connections.

And again, this might not apply, but I also find that offloading all the static content to another, smaller server helps keep things nippy (and will massively lower the number of connections that IIS is dealing with). Most people would go with nginx or lighttpd. It's pretty simple to round-robin those on a new subdomain.

Oli
+1  A: 

Most probably you need to up the number of ports permitted ( see http://technet.microsoft.com/en-us/library/cc758002.aspx )

This guy claims to have seen 50K+ concurrent connections from a single machine.

Peter Stuer
+1  A: 

We run this reg file on all our high volume sites.

Windows Registry Editor Version 5.00


[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"EnablePMTUDiscovery"=dword:00000001
"MaxUserPort"=dword:0000fffe
"TCPTimedWaitDelay"=dword:0000003c
"TCPMaxSendFree"=dword:0000ffff
"SynAttackProtect"=dword:00000001

Note that server needs to be rebooted for these changes to take place.

See:

Christopher_G_Lewis
A: 

you need to set the queue limit in IIS App pool

A: 

We are also having some problem in connection. Is there some other way also

eXtendCode

Alok Kumar