在線客服

電話①:189 6508 9135(張先生)
電話②:134 0599 8886(何小姐)
電話③:0591-83489135

技術(shù)文章


優(yōu)化IIS7支持10萬個同時請求的圖文配置方法


通過對IIS7的配置進(jìn)行優(yōu)化,調(diào)整IIS7應(yīng)用池的隊(duì)列長度,請求數(shù)限制,TCPIP連接數(shù)等方面,從而使WEB服務(wù)器的性能得以提升,保證WEB訪問的訪問流暢。

IIS7.5是微軟推出的最新平臺IIS,性能也較以前有很大的提升,但是默認(rèn)的設(shè)置配不適合很大的請求。但是我們可以根據(jù)實(shí)際的需要進(jìn)行IIS調(diào)整,使其性能更佳,支持同時10萬個請求。

以下方案,通過對IIS7的配置進(jìn)行優(yōu)化,調(diào)整IIS7應(yīng)用池的隊(duì)列長度,請求數(shù)限制,TCPIP連接數(shù)等方面,從而使WEB服務(wù)器的性能得以提升,保證WEB訪問的訪問流暢。

今天下午17點(diǎn)左右,博客園博客站點(diǎn)出現(xiàn)這樣的錯誤信息:

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

由于之前使用的是默認(rèn)配置,服務(wù)器最多只能處理5000個同時請求,今天下午由于某種情況造成同時請求超過5000,從而出現(xiàn)了上面的錯誤。

為了避免這樣的錯誤,我們根據(jù)相關(guān)文檔調(diào)整了設(shè)置,讓服務(wù)器從設(shè)置上支持10萬個并發(fā)請求。

具體設(shè)置如下:

1. 調(diào)整IIS 7應(yīng)用程序池隊(duì)列長度

由原來的默認(rèn)1000改為65535。

IIS Manager > ApplicationPools > Advanced Settings

Queue Length : 65535

優(yōu)化IIS7支持10萬個同時請求的圖文配置方法

2. 調(diào)整IIS 7的appConcurrentRequestLimit設(shè)置

由原來的默認(rèn)5000改為100000。

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

在%systemroot%\System32\inetsrv\config\applicationHost.config中可以查看到該設(shè)置:

<serverRuntime appConcurrentRequestLimit="100000" />

優(yōu)化IIS7支持10萬個同時請求的圖文配置方法

優(yōu)化IIS7支持10萬個同時請求的圖文配置方法

3. 調(diào)整machine.config中的processModel>requestQueueLimit的設(shè)置

1、單擊“開始”,然后單擊“運(yùn)行”。

2、在“運(yùn)行”對話框中,鍵入 notepad %systemroot%\Microsoft.Net\Framework64\v4.0.30319\CONFIG\machine.config,然后單擊“確定”。(不同的.NET版本路徑不一樣,你可以選擇你自己當(dāng)前想設(shè)置的.NET版本的config)

對于.net2.0對應(yīng)的是

notepad %systemroot%\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG\machine.config

.4.0

notepad %systemroot%\Microsoft.Net\Framework64\v4.0.30319\CONFIG\machine.config

3、找到如下所示的 processModel 元素:<processModel autoConfig="true" />

4、將 processModel 元素替換為以下值:<processModel enable="true" requestQueueLimit="100000" />

優(yōu)化IIS7支持10萬個同時請求的圖文配置方法

5、保存并關(guān)閉 Machine.config 文件。
由原來的默認(rèn)5000改為100000。

優(yōu)化IIS7支持10萬個同時請求的圖文配置方法

4. 修改注冊表,調(diào)整IIS 7支持的同時TCPIP連接數(shù)

由原來的默認(rèn)5000改為100000。

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

優(yōu)化IIS7支持10萬個同時請求的圖文配置方法

可在注冊表中查看

優(yōu)化IIS7支持10萬個同時請求的圖文配置方法

5. 運(yùn)行命令使用設(shè)置生效

net stop http & net start http & iisreset 完成上述4個設(shè)置,就可以支持10萬個并發(fā)請求,博客園博客服務(wù)器已經(jīng)啟用上述設(shè)置。

復(fù)制這個代碼到文本.txt后在改成.bat格式運(yùn)行直接處理以上3點(diǎn)。

#appConcurrentRequestLimit
c:\windows\system32\inetsrv\appcmd.exe set config /section:serverRuntime /appConcurrentRequestLimit:100000
 
reg add HKLM\System\CurrentControlSet\Services\HTTP\Parameters /v MaxConnections /t REG_DWORD /d 100000
 
# too long
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP\Parameters /v MaxFieldLength /t REG_DWORD /d 32768
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP\Parameters /v MaxRequestBytes /t REG_DWORD /d 32768

相關(guān)文章

首頁  電話  咨詢  頂部