一、一般優化方案
1、基本設定
[1] 佇列長度: 預設值1000,將原來的佇列長度改為 65535。
[2] 啟動32位應用程式:預設值false,改為true, 否則安裝一些32的組建或32位的php都會出錯。
[3] 託管管道模式:integrated 或 classsic。
2、高階設定
[1] 閒置超時(分鐘):預設20分鐘,修改設長。
[2] 快速故障防護 → 已啟用 :預設true,改為false。
3、解決pep第一次開啟pep速度慢
**間隔時間
使用windows server 2008 r2解決**假死的問題
開啟應用程式池 -> 高階設定 ->在「禁止重疊**」裡選擇「true」,這樣就有效避免了應用程式池**假死問題。
二、支援同時10萬個請求
通過對iis7的配置進行優化,調整iis7應用池的佇列長度,請求數限制,tcpip連線數等方面,從而使web伺服器的效能得以提公升,保證web訪問的訪問流暢。
站點碰到如下問題:
error summary:
detailed error information:
module iis web core
notification beginrequest
handler staticfile
error code 0x00000000
由於之前使用的是預設配置,伺服器最多只能處理5000個同時請求,今天下午由於某種情況造成同時請求超過5000,從而出現了上面的錯誤。
為了避免這樣的錯誤,我們根據相關文件調整了設定,讓伺服器從設定上支援10萬個併發請求。
具體設定如下:
1. 調整iis 7應用程式池佇列長度
將原來的佇列長度由預設值 1000 改為 65535。當然這裡的佇列長度你可以根據自己的 訪問使用者1.5 來設定,例如:有2000使用者,此處就可以設定為3000(3000=2000使用者數1.5)。
由原來的預設5000改為100000。
[1] 在cmd中執行:
3. 調整machine.config中的processmodel>requestqueuelimit的設定
[1] 單擊「開始」,然後單擊「執行」,或者 windows + r。
[2] 在「執行」對話方塊中,鍵入 notepad %systemroot%\microsoft.net\framework64\v4.0.30319\config\machine.config,然後單擊「確定」。(不同的.net版本路徑不一樣,可以選擇你自己當前想設定的.net版本的config)
[3] 找到如下所示的 processmodel 元素:
[4] 將 processmodel 元素替換為以下值:
[5] 儲存並關閉 machine.config 檔案。
由原來的預設5000改為100000。
4. 修改登錄檔,調整iis 7支援的同時tcpip連線數
由原來的預設5000改為100000。在cmd中執行:
可在登錄檔中檢視
5. 執行命令使用設定生效
完成上述5個設定,就可以支援10萬個併發請求,部落格伺服器已經啟用上述設定。
為了方法大家與自己使用,我把上面能用bat操作簡單放到乙個bat檔案裡面了。將下面的內容儲存為do.bat檔案執行就可以了,需要手工的自己操作
三、支援高併發的iis web伺服器常用設定
適用的iis版本:iis 7.0, iis 7.5, iis 8.0
適用的windows server版本:windows server 2008, windows server 2008 r2, windows server 2012
[1] general->queue length設定為65535(佇列長度所支援的最大值)
[2] process model->idle time-out設定為0(不讓應用程式池因為沒有請求而**)
[3] recycling->regular time interval設定為0(禁用應用程式池定期自動**)
2、.net framework相關設定
[1] 在machine.config中將
< processmodel autoconfig=「true」 />
改為(儲存後該設定立即生效)
[2] 開啟c:\windows\microsoft.net\framework64\v4.0.30319\config\browsers\default.browser,找到,注釋部分,然後在命令列中執行aspnet_regbrowsers -i。以解決text/vnd.wap.wml問題。
設定命令:
(儲存後該設定立即生效)
4、http.sys的設定
登錄檔設定命令1(將最大連線數設定為10萬):
登錄檔設定命令2(解決bad request - request too long問題):
(需要在命令列執行 net stop http & net start http & iisreset 使設定生效)
5、針對負載均衡場景的設定
在url rewrite module中增加如下的規則:
注意事項:新增該url重寫規則會造成iis核心模式快取不工作,詳見微軟的坑:url重寫竟然會引起iis核心模式快取不工作。
6、 設定cache-control為public
在web.config中新增如下配置:
複製**
複製**
複製**
複製**
在machine.config的中新增如下設定:
< processmodel enable=「true」 maxworkerthreads=「100」 maxiothreads=「100」 minworkerthreads=「50」 miniothreads=「50」/>
IIS7 IIS7 5中目錄執行許可權的設定方法
iis7 iis7.5中目錄執行許可權的設定方法 我們在建站的時候,通常有些目錄必須給寫入許可權,這個時候這些目錄就很可能被人寫入指令碼檔案,為了將安全性維護得更好,我們可以關閉這些有寫入許可權的目錄的指令碼執行許可權。iis6的時候,我們很容易找到關閉的地方,而iis7時代,由於架構的變化,很多人...
IIS7的應用程式池
最近將原來的系統遷移到iis7.5上了,發現aspnetupload只能執行在 程式程式池 的 經典 模式之下,採用 整合 模式後,aspnetupload.getuploadfile始終為null,雖然改成經典不影響系統執行,但是這種模式就發揮不出iis7的優勢了,相當於以iis6的相容模式在執行...
IIS應用程式池監控
最近發現公司執行的web 應用程式池會突然停止,做的負載均衡 路由負載 又無法監測到iis應用程式池的情況,就想著通過某一種監控方式監測iis應用程式池的情況,如果處關閉狀態則立刻重新啟動.所說的iis應用程式池監控也只能算是偽監控,不喜勿噴.執行 winform windows計畫任務 1.首先獲...