Loading

.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打开的不会增加连接数。

posted @ 2024-02-29 14:42  jevan  阅读(180)  评论(0编辑  收藏  举报