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