我们有一个运行在具有2台64位计算机的Windows 2003群集上的站点。
该网站需要能够应对超过20,000个并发用户
该网站所做的一件事就是允许下载2MB文件(缓存在内存中)。
我们的CPU和内存使用率很低。我们也有剩余带宽。
由于用户下载文件所花费的时间(某些用户的互联网连接速度较慢),我们似乎已经没有连接了。
在IIS日志中,我们收到HTTP 503错误。
在HTTPErr日志中,我们主要使用一些Timer_EntityBody DefaultAppPool来获取Connection_Dropped DefaultAppPool。
问题是:我们如何配置IIS以允许更多连接?或者我在这里缺少什么?
由于
西拉
答案 0 :(得分:4)
我们在所有高容量网站上运行此reg文件。
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
请注意,需要重新启动服务器才能进行这些更改。
见:
答案 1 :(得分:1)
很可能您需要增加允许的端口数量(请参阅http://technet.microsoft.com/en-us/library/cc758002.aspx)
This guy声称从一台计算机上看到了50K +并发连接。
答案 2 :(得分:0)
我不确定这是否适用于IIS(虽然我不明白为什么不会)但是在Linux服务器上,我发现关闭keep-alive有助于限制并发连接的数量。
同样,这个可能不适用,但我也发现将所有静态内容卸载到另一个较小的服务器有助于防止事情发生(并且会大大降低IIS处理的连接数量)用)。大多数人会使用nginx或lighttpd。在新的子域上循环使用它们非常简单。
答案 3 :(得分:0)
您需要在IIS App pool中设置队列限制
答案 4 :(得分:-2)
我认为您无法在任何一台计算机上获得20000个并发连接 - 您可能需要考虑扩展到多个Web服务器。