让Windows Server 2008 + IIS 7+ ASP.NET 支持10万个同时请求

今天下午17点左右,博客园博客站点出现这样的错误信息:

Error Summary:

HTTP Error 503.2 - Service Unavailable
The serverRuntime@appConcurrentRequestLimit setting is being exceeded. 

Detailed Error Information:

Module IIS Web Core 
Notification BeginRequest 
Handler StaticFile 

Error Code 0x00000000

由于之前使用的是默认配置,服务器最多只能处理5000个同时请求,今天下午由于某种情况造成同时请求超过5000,从而出现了上面的错误。

为了避免这样的错误,我们根据相关文档调整了设置,让服务器从设置上支持10万个同时请求。

具体设置如下:

1. 调整IIS 7应用程序池队列长度

由原来的默认1000改为65535。

IIS Manager > ApplicationPools > Advanced Settings

Queue Length : 65535

2.  调整IIS 7的appConcurrentRequestLimit设置

由原来的默认5000改为100000。

c:\windows\system32\inetsrv\appcmd.exe set config /section:serverRuntime /appConcurrentRequestLimit:100000

在%systemroot%\System32\inetsrv\config\applicationHost.config中可以查看到该设置:

<serverRuntime appConcurrentRequestLimit="100000" /> 

3. 调整machine.config中的processModel>requestQueueLimit的设置

由原来的默认5000改为100000。

<configuration>
    
<system.web>
        <processModel requestQueueLimit="100000"/>  

参考文章:http://technet.microsoft.com/en-us/library/dd425294(office.13).aspx

4. 修改注册表,调整IIS 7支持的同时TCPIP连接数

由原来的默认5000改为100000。

reg add HKLM\System\CurrentControlSet\Services\HTTP\Parameters /v MaxConnections /t REG_DWORD /d 100000 

完成上述4个设置,就可以支持10万个同时请求,博客园博客服务器已经启用上述设置。 

参考文章:

IIS 7.0 503 errors with generic handler (.ashx) implementing IHttpAsyncHandler

Tuning Windows Server 2008 for PHP 

标签: IIS 7
posted @ 2009-11-10 18:57 dudu 阅读(9089) 评论(49) 编辑 收藏

 回复 引用 查看   
#1楼 2009-11-10 19:01 陛下      
嗯,抢到了第一个位置!
 回复 引用   
#2楼 2009-11-10 19:02 有空来坐坐[未注册用户]
我说呢,下午老503
 回复 引用 查看   
#3楼 2009-11-10 19:02 san.      
第二個位置
 回复 引用 查看   
#4楼 2009-11-10 19:13 GWPBrian      
只有实践才会发现问题,不错,学习
 回复 引用 查看   
#5楼 2009-11-10 19:29 Joyaspx      
看来博客园的人气越来越旺了
 回复 引用 查看   
#6楼 2009-11-10 19:32 二德子      
感觉速度还是慢啊!
 回复 引用   
#7楼 2009-11-10 19:36 .easycode[未注册用户]
我只知道下午5点左右的时候卡死了 不管哪个页面都开不开
开了N个 没一个开的
我以为公司网络有问题

 回复 引用 查看   
#8楼 2009-11-10 19:38 卡索      
不错,同时想知道下IIS6+windows2003+Asp.net2.0最大的上限是多少

 回复 引用 查看   
#9楼 2009-11-10 19:49 toEverybody      
吹牛
 回复 引用 查看   
#10楼 2009-11-10 19:54 wingoo      
只是这样设了
撑不撑的住还是问题吧?

 回复 引用 查看   
#11楼 2009-11-10 20:11 Yankee      
太复杂了。。

 回复 引用 查看   
#12楼 2009-11-10 20:12 小小文竹      
这么强~~~
 回复 引用 查看   
#13楼 2009-11-10 20:38 鹤冲天      
最近老是感觉上博客园有点慢...
不知道服务器的硬件配置如何?

 回复 引用 查看   
#14楼 2009-11-10 21:00 WizardWu      
不知博客园是否有做 Web Server (IIS) 的 WNLB (Load Balancing),
应该不会只有一台物理 Web Server 机器吧?

网站性能优化 - 数据库及服务器架构篇
http://www.cnblogs.com/WizardWu/archive/2009/09/22/1571499.html

 回复 引用 查看   
#15楼 2009-11-10 21:01 风海迷沙      
遇到了这个503,但刷一下就好了。
 回复 引用 查看   
#16楼 2009-11-10 21:03 Gnie      
原来是这样啊,我说怎么提示超过连接数呢。
 回复 引用 查看   
#17楼 2009-11-10 21:53 Fred_Xu      
学习了,收藏!
 回复 引用 查看   
#18楼 2009-11-10 22:18 canbeing      
感觉博客园经常一下子很慢
 回复 引用 查看   
#19楼 2009-11-10 22:21 Jeffrey Zhao      
@WizardWu
据说是一台Web Server和一台DB Server。
其实我觉得,如果博客园精心优化一下,现有的配置还是可以抗更多的。

 回复 引用 查看   
#20楼 2009-11-10 22:22 Jeffrey Zhao      
引用wingoo:
只是这样设了
撑不撑的住还是问题吧?

基本上不可能撑得住的,要知道这可是C100K啊。
这里设置的目的只是把这边的瓶颈打开了而已。

 回复 引用   
#21楼 2009-11-10 22:51 fftt[未注册用户]
Dudu能不能透露一下,最大能处理多少并发请求啊?
 回复 引用 查看   
#22楼[楼主] 2009-11-10 22:54 dudu      
引用wingoo:
只是这样设了
撑不撑的住还是问题吧?

这样设置,只是为了当突发的并发连接超过5000时,不出现503错误。
而能不能撑住不是由这个设置决定的。

 回复 引用 查看   
#23楼 2009-11-10 23:37 liy      
像博客园服务器的配置,理论是可以达到的最大并发是多大?
在没有其他性能消耗的情况,纯页面请求。

 回复 引用 查看   
#24楼[楼主] 2009-11-10 23:46 dudu      
@liy
你所说的最大并发对应的是性能监视器的哪个指标?

 回复 引用 查看   
#25楼 2009-11-11 01:09 WizardWu      
@Jeffrey Zhao
感谢老赵的回复。

 回复 引用 查看   
#26楼 2009-11-11 09:16 生鱼片      
期待后续运行情况
 回复 引用 查看   
#27楼 2009-11-11 09:41 Jerry Qian      
引用Jeffrey Zhao:
@WizardWu
据说是一台Web Server和一台DB Server。
其实我觉得,如果博客园精心优化一下,现有的配置还是可以抗更多的。

是指主域名吗.子项目应该是另放的吗?

 回复 引用 查看   
#28楼 2009-11-11 09:50 Jeffrey Zhao      
@Jerry Qian
具体有没有放zzk或space就不清楚了,不过它们的压力应该比blog要少很多吧。

 回复 引用 查看   
#29楼 2009-11-11 10:01 王金平      
路过
 回复 引用 查看   
#30楼 2009-11-11 10:12 peace      
纯顶~~
 回复 引用 查看   
#31楼 2009-11-11 10:29 .NET*DR_      
@dudu
学习了!
呵呵

看了文章后才知道Windows Server 2008在同一时刻能抗10W个请求

 回复 引用 查看   
#32楼 2009-11-11 10:37 梅子      
Mark

 回复 引用 查看   
#33楼 2009-11-11 10:52 阿牛      
通过F5交换机来增加硬件
 回复 引用 查看   
#34楼[楼主] 2009-11-11 11:47 dudu      
引用Jerry Qian:
引用Jeffrey Zhao:
@WizardWu
据说是一台Web Server和一台DB Server。
其实我觉得,如果博客园精心优化一下,现有的配置还是可以抗更多的。

是指主域名吗.子项目应该是另放的吗?

一台Web Server专门跑博客。

 回复 引用 查看   
#35楼[楼主] 2009-11-11 11:49 dudu      
引用.NET*DR_:
看了文章后才知道Windows Server 2008在同一时刻能抗10W个请求

是Windows Server 2008可以支持同一时刻10W个请求,但能否抗得住取决于服务器硬件处理能力和程序的性能。

 回复 引用 查看   
#36楼 2009-11-11 12:51 airwolf2026      
@dudu
为啥俺的谷歌浏览器刷不出评论?不是俺的网络出问题了吧?

 回复 引用 查看   
#37楼 2009-11-11 12:59 .NET*DR_      
@dudu
能不能把博客园中类似这些的维护日志

像这种!增强服务器性能啊!
数据库如何支持高并发啊!
就是通过配置服务器环境来应对现有的问题做一个专题?
我觉得我看了后对我的帮助很大.

谢谢

 回复 引用 查看   
#38楼[楼主] 2009-11-11 16:29 dudu      
@airwolf2026
我这里用谷歌浏览器正常。

 回复 引用 查看   
#39楼[楼主] 2009-11-11 16:33 dudu      
@.NET*DR_
谢谢你的建议!
当积累了足够的文章,我们会考虑做这样的专题。

 回复 引用 查看   
#40楼 2009-11-11 21:16 airwolf2026      
@dudu
好的.看来是我这边的问题.

 回复 引用 查看   
#41楼 2009-11-12 09:06 Ame      
学习,真需要这个,谢啦
 回复 引用 查看   
#42楼 2009-11-12 21:20 winkingzhang      
这个挺有用的,支持搞个专题
 回复 引用 查看   
#43楼 2009-11-14 17:25 遛扬狗      
10w连接?微软太强了,我用IIS6的Web园测试到8000左右,看来可以结束测试直接用2008了。
 回复 引用 查看   
#44楼 2009-12-02 11:19 31526      
呵呵,cnblogs Server2008+ii7了
 回复 引用   
#45楼 2009-12-05 12:45 JamesLove[未注册用户]
請問IIS6也有ppConcurrentRequestLimit設定可以調整嗎?

另外我在IIS6上運行ASP程式,這樣的設定除了ASP.NET的程式有效以外,對ASP程式一樣有效嗎?

 回复 引用   
#46楼 2009-12-05 12:46 JamesLove[未注册用户]
請問IIS6也有ppConcurrentRequestLimit設定可以調整嗎?

另外我在IIS6上運行ASP程式,這樣的設定除了ASP.NET的程式有效以外,對ASP程式一樣有效嗎?

 回复 引用 查看   
#47楼 2009-12-21 17:13 遛扬狗      
我测试了,14K的时候,IIS崩溃了。
 回复 引用 查看   
#48楼 2010-01-29 11:45 czjone      
只是可以这样设置,还和硬件,环境有关~
 回复 引用 查看   
#49楼 2012-01-13 23:25 Kudy      
mark