.NET在Windows Server环境让IIS上支持高并发
.NET在Windows Server环境让IIS上支持高并发
前言
1、调整IIS应用程序池配置
2、调整IIS的appConcurrentRequestLimit设置
3、调整machine.config中的processModel > requestQueueLimit的设置
4、修改注册表,调整IIS支持的同时TCP/IP连接数
5、运行命令重启使设置生效
前言
最近为解决某项目要求的2000并发请求问题,在网上尝试了无数方法,不管程序如何优化调整,始终无法突破1000并发;so,不得不考虑服务器环境设置问题,接下来就看看如何让服务器从设置上支持10万个并发请求。
运行环境:
Windows Server 2012、.Net4.0、IIS8
1、调整IIS应用程序池配置
找到部署的程序对应的应用程序池—》高级设置—》:
队列长度:65535(根据服务器配置可以加长)
队列长度值设置为预期最多用户数的 1.5 倍
参考链接:https://learn.microsoft.com/zh-cn/previous-versions/office/communications-server/dd441171(v=office.13)
3. 固定时间间隔:1440分钟(24小时)
4. 闲置超时:0分钟(不超时)
2、调整IIS的appConcurrentRequestLimit设置
cmd命令行直接运行:
c:\windows\system32\inetsrv\appcmd.exe set config /section:serverRuntime /appConcurrentRequestLimit:100000
可以直接在 %systemroot%\System32\inetsrv\config\applicationHost.config 路径下配置文件查看到该设置是否被修改(默认为5000):
<serverRuntime appConcurrentRequestLimit="100000" />
3、调整machine.config中的processModel > requestQueueLimit的设置
cmd命令行直接运行:
notepad %systemroot%\Microsoft.NET\Framework\v4.0.30319\Config\machine.config notepad %systemroot%\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config
打开对应.net版本配置文件,编辑requestQueueLimit(默认为5000):
<configuration> <system.web> <processModel enable="true" requestQueueLimit="100000"/>
参考链接:https://learn.microsoft.com/zh-cn/previous-versions/office/communications-server/dd425294(v=office.13)
4、修改注册表,调整IIS支持的同时TCP/IP连接数
cmd命令行直接运行:
reg add HKLM\System\CurrentControlSet\Services\HTTP\Parameters /v MaxConnections /t REG_DWORD /d 100000
5、运行命令重启使设置生效
net stop http & net start http & iisreset
注意:新开页面会造成链接数大量增加,但是以window.open打开的不会增加连接数。
本文来自博客园,作者:jevan,转载请注明原文链接:https://www.cnblogs.com/DoNetCShap/p/18043736