让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中可以查看到该设置:
3. 调整machine.config中的processModel>requestQueueLimit的设置
由原来的默认5000改为100000。
<configuration> <system.web> <processModel enable="true" 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
5. 运行命令使用设置生效
net stop http & net start http & iisreset
完成上述4个设置,就可以支持10万个并发请求,博客园博客服务器已经启用上述设置。
参考文章:
IIS 7.0 503 errors with generic handler (.ashx) implementing IHttpAsyncHandler
============ 欢迎各位老板打赏~ ===========
与本文相关的文章
- · springboot使用lock4j实现并发控制
- · 使用jenkins远程布署.net项目
- · ASP.NET MVC分页 demo
- · mybatis 乐观锁解决并发并回滚
- · c#/ASP.NET向百度站长平台主动推送URL
- · ASP.NET分页组装HTML代码
- · linux asp.net用httpWebRequest或WebClient访问https站点
- · 支持高并发的IIS Web服务器常用设置
- · LINUX下部署ASP.NET:无需安装Mono的Jexus“独立版”
- · 最新asp.net/c#使用Memcached完整示例及注意事项
- · 讨论:关于ASP.NET用Timer定时执行问题
- · ASP.NET获取工程根目录