Microsoft IIS Web服務器配置優化

相信大家所在團隊應該或多或少會存在一些使用.NET 4.x的老系統,本文總結了筆者所在團隊對.NET 4.x應用的線上IIS服務器進行的一些配置優化,供參考。

環境版本說明

適用的IIS版本:IIS 7.0, IIS 7.5, IIS 8.0

適用的Windows版本:Windows Server 2008, Windows Server 2008 R2, Windows Server 2012

集採線上環境對應版本:.NET Framework 4.5(及以上版本) + IIS8.0(及以上版本) + Windows Server 2012 R2(及以上版本)

 

Microsoft IIS Web服务器配置优化

 

 

.NET Framework配置優化

找到C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config 修改
`<processModel autoConfig="true" />`
`<processModel enable="true" requestQueueLimit="100000" maxWorkerThreads="100" maxIoThreads="100" minWorkerThreads="50" minIoThreads="50"/>`
修改後點擊保存立即生效,修改此配置可以移除自動配置的請求隊列限制,這裏放寬到10萬請求量並放寬ASP.NET線程數限制。
Note:關於.NET中的workerThread和ioThread的概念,可以閱讀https://blog.csdn.net/wwwpcstarcomcn/article/details/11892711

IIS的applicationHost配置優化

打開cmd以管理員身份執行以下命令:
`C:\windows\system32\inetsrv\appcmd.exe set config /section:serverRuntime /appConcurrentRequestLimit:100000`
驗證:找到C:\Windows\System32\inetsrv\config\applicationHost.config中的以下內容
`<serverRuntime appConcurrentRequestLimit="100000" />`
 

操作系統http.sys配置優化

關於http.sys:它是Windows操作系統的一個核心組件,它運行在操作系統的內核模式下,是一個網絡驅動程序,始終處於運行狀態,對於用戶的HTTP請求能夠及時作出反應。

 

 

Microsoft IIS Web服务器配置优化

 

(1)註冊表設置命令1(將最大連接數設置爲10萬):

`reg add HKLM\System\CurrentControlSet\Services\HTTP\Parameters /v MaxConnections /t REG_DWORD /d 100000`
(2)註冊表設置命令2(解決Bad Request - Request 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
reference:https://www.cnblogs.com/dudu/archive/2012/06/06/bad_request_request_too_long.html

最後運行以下命令讓配置生效(在powershell下通過 | 符號連接多個命令):

net stop http | net start http | iisreset

操作系統TCP端口配置優化

Windows Server默認的TCP MaxUserPort限制爲5000,超出TCP連接端口數限制也會引起服務器問題(參考:博客園主站的TCP MaxUserPort引起的服務器問題 )。 修改: 在註冊表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 中添加名爲MaxUserPort,類型爲DWORD(32-bit),值爲65534(10進制)的項目。

 

Microsoft IIS Web服务器配置优化

 

Note:如果你的多個應用站點都是使用同一個端口(比如:80端口),那麼放寬此TCP MaxUserPort限制很有必要!

IIS整體配置優化

(1)關閉目錄瀏覽 (2)關閉IIS日誌 (3)啓用IIS應用預加載 目的:解決第一次(或者被應用程序池回收後)訪問慢的問題 方法: step1.在服務器管理中安裝應用程序初始化功能 Microsoft IIS Web服务器配置优化

 

Microsoft IIS Web服务器配置优化

step2.在IIS爲指定網站設置預加載
選擇網站-網站設置-高級設置:

 

Microsoft IIS Web服务器配置优化

 

setp3.在IIS整體設置“配置編輯器”:

Microsoft IIS Web服务器配置优化

設置後點擊應用按鈕生效。

IIS應用配置優化

建議設置應用池默認配置以便多個應用站點複用: (1)常規 隊列長度:改爲65535 啓動模式:改爲AlwaysRunning

Microsoft IIS Web服务器配置优化
Note:隊列長度改大這個操作是把雙刃劍,取決你的服務器配置 及 應用程序的性能,建議謹慎設置。
(2)回收 改爲特定時間(比如凌晨4點)回收: Microsoft IIS Web服务器配置优化

(3)進程模型
關閉時間限制:改爲120s
空閒超時操作:改爲Suspend
啓動時間限制:改爲120s
閒置超時:改爲0分鐘

Microsoft IIS Web服务器配置优化

 

參考資料
(1)dudu,《支持高併發的IIS Web服務器常用配置 》
(2)dudu,《讓Windows Server + IIS支持10萬併發請求 》
(3)滴答的雨,《站點部署:IIS配置優化指南》


來源:EdisonTalk ,作者愛迪生
武穆逸仙 https://www.iwmyx.cn/microsoftiiswebfwqpa.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章