IIS應用程序池優化方案
服務器經常產生“應用程序池 'DefaultAppPool' 提供服務的進程關閉時間超過了限制。進程 ID 是 '3504'。”的錯誤,導致iis處于假死狀態,經了解是IIS應用程序池的設置問題。解決方法如下(紅色字為標記):
Internet 信息服務(IIS)管理器->應用程序池->DefaultAppPool->右擊屬性
一、回收
1、回收工作進程(分鐘):選中,值為1740 (800)
2、回收工作進程(請求數目):(不選)(原先設置為35000)
3、在下列時間回收工作進程:不填 (03:00)
4、消耗太多內存時回收工作進程:全不選。(2、3、4項可能避免了在訪問量高的時候強制回收進程可能引發的服務器響應問題,導致iis假死不響應)(最大虛擬內存350,最大使用的內存200)
二、性能 (都不選)
只選中空閑超時20分鐘。其他都不選。WEB園最大工作進程數為1(默認)。注意web園這里一定要保持默認,如果填寫其他超過1的數字就會導致一些網站程序的后臺程序打不開或者刷新不停。
原來的請求隊列限制為4000,現在無限制。(要選就是10000)
三、運行狀況
(啟用PING,默認)
(啟動快速失敗保護的鉤去掉!)
為了避免真的遇到很多錯誤時沒有提示,可以不關閉,只是把快速保護的保護范圍加大些,例如失敗數50次 時間段5分鐘 則關閉對應的程序。(啟動時間限制90秒,關閉時間限制180秒。)
“關閉時間限制180秒”是必須的,因為進程關閉的時間,原來為90秒限制,是默認值,如果進程關閉時間超過90秒,則認為超時,從而出現:進程關閉時間超過了限制 日志,所以,適當延長這個時間,可以避免這種錯誤!
IIS 6的核心在于工作進程隔離模式,而應用程序池則是定義工作進程如何進行工作,因此,可以說應用程序池是整個IIS 6的核心。
和IIS 5中只能使用單個應用程序池不同,工作在工作進程隔離模式的IIS 6可以創建多個應用程序池,不同的應用程序池之間是完全隔離的,某個應用程序池停止服務時不會影響到其他應用程序池。
在使用應用程序池之前,你應該確定你所需要的應用程序池數量??赡苡泻芏嗯笥褧J為,既然不同的應用程序池之間是完全隔離的,那么我只需要為每個Web站點創建一個應用程序池就可以了。這個辦法在IIS服務器上具有較少的Web站點數量時可以使用,但是如果IIS服務器上具有很多Web站點數量,那么這個辦法就不適用了,因為不同的應用程序池在被訪問時都會創建各自的工作進程,當大量的工作進程并發工作時會消耗大量的系統資源和CPU利用率,反而會降低服務器性能。你應該根據Web站點的重要性、隔離性、所運行代碼的安全性和穩定性等來對IIS服務器上所具有的Web站點進行劃分,然后根據情況來決定所需要的應用程序池數量。對于那些非常重要的Web站點、需要單獨隔離的Web站點、所運行代碼穩定性和安全性并不可靠的Web站點配置為使用各自獨立的應用程序池,而將其他普通的Web站點配置為使用一個公共的應用程序池。
默認情況下,在安裝IIS時會創建一個默認網站并創建一個名為DefaultAppPool的應用程序池為其使用;默認配置下的應用程序池已經可以很好的進行工作,建議你只有在特別需要時才對應用程序池進行配置。
配置應用程序池屬性
在IIS管理控制臺中展開應用程序池文件夾,然后右擊對應的應用程序池,點擊屬性,你可以在應用程序池的屬性中進行以下配置:
回收
在回收標簽,你可以設置工作進程的回收方式:
新聞熱點
疑難解答