.NET在Windows Server環(huán)境讓IIS上支持高并發(fā)
.NET在Windows Server環(huán)境讓IIS上支持高并發(fā)
前言
1、調(diào)整IIS應(yīng)用程序池配置
2、調(diào)整IIS的appConcurrentRequestLimit設(shè)置
3、調(diào)整machine.config中的processModel > requestQueueLimit的設(shè)置
4、修改注冊表,調(diào)整IIS支持的同時TCP/IP連接數(shù)
5、運行命令重啟使設(shè)置生效
前言
最近為解決某項目要求的2000并發(fā)請求問題,在網(wǎng)上嘗試了無數(shù)方法,不管程序如何優(yōu)化調(diào)整,始終無法突破1000并發(fā);so,不得不考慮服務(wù)器環(huán)境設(shè)置問題,接下來就看看如何讓服務(wù)器從設(shè)置上支持10萬個并發(fā)請求。
運行環(huán)境:
Windows Server 2012、.Net4.0、IIS8
1、調(diào)整IIS應(yīng)用程序池配置
找到部署的程序?qū)?yīng)的應(yīng)用程序池—》高級設(shè)置—》:
隊列長度:65535(根據(jù)服務(wù)器配置可以加長)
隊列長度值設(shè)置為預(yù)期最多用戶數(shù)的 1.5 倍
參考鏈接:https://learn.microsoft.com/zh-cn/previous-versions/office/communications-server/dd441171(v=office.13)

3. 固定時間間隔:1440分鐘(24小時)

4. 閑置超時:0分鐘(不超時)

2、調(diào)整IIS的appConcurrentRequestLimit設(shè)置
cmd命令行直接運行:
c:\windows\system32\inetsrv\appcmd.exe set config /section:serverRuntime /appConcurrentRequestLimit:100000
可以直接在 %systemroot%\System32\inetsrv\config\applicationHost.config 路徑下配置文件查看到該設(shè)置是否被修改(默認(rèn)為5000):
<serverRuntime appConcurrentRequestLimit="100000" />
3、調(diào)整machine.config中的processModel > requestQueueLimit的設(shè)置
cmd命令行直接運行:
notepad %systemroot%\Microsoft.NET\Framework\v4.0.30319\Config\machine.config notepad %systemroot%\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config
打開對應(yīng).net版本配置文件,編輯requestQueueLimit(默認(rèn)為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、修改注冊表,調(diào)整IIS支持的同時TCP/IP連接數(shù)
cmd命令行直接運行:
reg add HKLM\System\CurrentControlSet\Services\HTTP\Parameters /v MaxConnections /t REG_DWORD /d 100000
5、運行命令重啟使設(shè)置生效
net stop http & net start http & iisreset
注意:新開頁面會造成鏈接數(shù)大量增加,但是以window.open打開的不會增加連接數(shù)。
本文來自博客園,作者:jevan,轉(zhuǎn)載請注明原文鏈接:http://www.rzrgm.cn/DoNetCShap/p/18043736

浙公網(wǎng)安備 33010602011771號