IIS假死的解決方法 縮短IIS應用池回收時間來實現減少IIS假死
2024-08-29 03:12:52
供稿:網友
IIS日志:
應用程序:ISAPI 'C:/WINDOWS/system32/inetsrv/asp.dll' 報告它自身有問題,原因如下: 'ASP 不正常,因為執行請求的 100% 被掛起,而且請求隊列已經使用了 0%。'。
關于 server 2003+IIS6 出現 'ASP 不正常,因為執行請求的 100% 被掛起
現像如下:
站點無法打開,或者打開很慢.HTML可以打開.重新啟動或者回收應用程序池可恢復.但過一段時間又會出現
日志里會有:
ISAPI 'C:/WINDOWS/system32/inetsrv/asp.dll' reported itself as unhealthy for the following reason: 'ASP unhealthy because 100% of executing requests are hung and 6% of the request queue is full.'.
或者:
ISAPI 'C:/WINDOWS/system32/inetsrv/asp.dll' 報告它自身有問題,原因如下: 'ASP 不正常,因為執行請求的 100% 被掛起,而且請求隊列已經使用了 0%。'。
解決方法:
1.asp是否正確映射到 'C:/WINDOWS/system32/inetsrv/asp.dll'
2.一般來講,是由于在同屬IIS的應用程序池出現了某個站ASP代碼錯誤所致,使得內存耗盡,檢查代碼本身的問題.可以隔離到單獨應用程序池調試
3、減少應用程序池回收時間。默認為:1740。??稍O為120(每2小時)
IIS假死的原因:
打開IIS 你就會看到應用程序池,默認只有一個應用程序池,查看應用程序池的屬性,會發現他的回收時間,默認多達,1740分鐘,就是說,需要在1740分鐘后才回收此應用程序池,如果在這個時間內,達到請求的最高限制,那么就會出現ASP假死的情況,這個就是大型網站出現假死的情況,反而,小型網站確不會出現這樣的情況,因為他請求少,流量少,還沒達到限制數量。當然要看你的服務器上網站數目而定。
以下是解決方法:
資料一
單個網站解決方法:
把應用程序池回收時間縮短到300-600分鐘,其間回收過程中,需要占用一點CPU資源,沒辦法,為了穩定性,再把回收時間設為凌晨5點。
多網站解決方法:
視服務器網站的多少,新建多個應用程序池,把每個池回收時間縮小到 300分鐘,然后再分配每個池10個網站左右(這個分配是要求你的網站訪問量所定)如果某個網站,訪問量大,就單獨給他一個程序池,但是這樣做的后果就是需要大內存,一個池現在占用我120M內存左右,反正內存大,沒關系,
那么多網站如何分配應用程序池,打開IIS--查看你要分配的網站屬性,查看主目錄--在下面你就會看到應用程序池了,分配一個就行了。
資料二
大家在使用iis6時..如果裝了動網論壇.肯定有出現過iis6假死現像..就是asp網頁打開慢..但是iis卻是正常的..靜態網頁打開速度一樣..這時候..我一直是重啟的方法..查了官方的資料結果沒有...據官方資料說..win2003很快就要打這個補丁了..是iis6對access驅動支持不理像..也算是一個 bug吧..由于我的服務器虛擬主機多..而且大多支持asp..如果一旦假死就無法運行..在多方面的資料查找下..找到了一個比較簡單的方法..具體我測試是通過了..iis6自帶數據應用程序池..現在就利用他來解決假死..