IIS 應用程序池假死問題 解決辦法

iis問題,應用程序池!

爲應用程序池 'AppPool #1' 提供服務的進程關閉時間超過了限制。進程 ID 是 '3000'。 

出現上面情況後,該應用程序池對應的網站就訪問的非常慢,幾乎是打不開。

這種現象是不是iis假死?

重啓下該站點,問題可以得到解決。

可能是應用程序池設置問題,不知道具體應該怎麼設置!

請高手指點。 


 程序代碼解決辦法:
1  設置進程池回收時間.在進程池屬性裏.
2  如果你的程序是使用 asp + acc 數據庫.且acc數據庫大於30m.建議更換sql數據庫. acc數據庫大於這個值.2003系統下會造成iis6的頻繁假死.2000下會造成dllhost.exe佔用大量cpu及內存資源.都會嚴重影響web訪問速度.
3  asp程序存在死循環.
4  可使用 microsoft office 壓縮修復acc數據庫,須先備份. 


 引用內容2003應用程序池假死常見問題及解決方法
2006-10-09 09:48
經常見到大家談起,2003應用程序池自動死了,不能恢復了,一直出現 Service Unavailable 常見方法如下。

1:以前沒有SP1打補丁的時候會出現這個IIS6。0假死問題,但現在微軟都在自動更新裏面出補丁了,一般你打好最新補丁後是不會出現此問題了。(所以現在的IIS假死與這個關係不是很大)

2:從IIS6.0開始CPU資源都在應用池裏面限制了,不象以前的IIS。5。所以假死的池的緣故就是池被拉死,你在網站打不開的時候可以看到你的某個應用池是禁用的,上面出現一個紅叉。你鼠標右鍵啓動網站又會自動恢復。 這個原因:大概是以下幾個因數造成的。

     (1):你限制了應用池的資源限制,限制得太小 比如:50這樣或更少更多一點,這個時候如果你這個池下面的網站佔用CPU太高,比如超過50% 那麼5分鐘後他就自動死了,手工默認建立的應用池默認是超過資源不操作。
       出現上面這個情況解決方法:1:不限制CPU資源,(這個是不可取的,不限制資源,有的程序有BUG佔用資源厲害了的,服務器都會被拉死,你可能都無法操作服務器。)2:在超過資源那裏選擇 關閉,這個關閉默認是失敗5次,90秒內恢復,一般默認就可。網站能自動恢復,這個關閉:不是永久關閉,意思是超過資源關閉,然後在某時間內自動恢復池。不操作就是不恢復,這個是很多人的誤區。上次我寫過相關的這個講解了。

     (2):內存限制 在IIS6。0應用池上面有虛擬內存和最大內存限制,如果你設置了這個。那麼網站訪問量大了 也會出現假死,所以不建議設置這裏。默認就可。

3:就是服務器自身內存太小,網站運行當然需要使用到內存了,當內存不夠的時候應用池也會死掉變成禁用。那麼只有等內存全部釋放出來才能恢復應用池了。出現這個情況:那麼你就要考慮加內存或者檢查到底是什麼程序佔用了內存了。比如MSSQL數據庫,這個可是吃內存得大戶啊,最好別和WEB服務器同時一個服務器上。很多人用1G內存做 2003系統,2003NET結構是很佔用內存的,所以做服務器選2003還得把內存加到2G或更高才好。 內存不夠上面 2點講到的,是沒辦法操作了,也無法自動恢復。

4:就是ACCESS數據庫太大或查詢太多,這個也會出現把IIS拉死,解決方法;修復ACCESS數據庫,或儘量少用ACCESS數據庫。

5:不同網站用不同應用池:根據你自己實際情況而定,站點大的最好獨立一個應用池,限制他的資源超過了自動回收,看上面 (1)講到的,這樣就不影響其他站點。 中型站點:多個網站共用一個應用池,比如5個站點用一個池,設置他資源時間等等。這樣他們就算超資源了也不影響其他應用池的網站。

6:設置回收時間:很多人以爲設置回收池越短越好,其實是錯誤的,每次回收當然是把內存回收回來了,但加重了一次服務器的負擔,當服務器比較繁忙的時候,有可能導致其他應用池死。所以建議設置共1000就行了。其他獨立池按照他網站流量而設置 可以設置600 也行,共用的不建議設置太短。

7:網站後臺過不了多久自動退出又要重新登陸:這個情況就是你設置回收時間太短了,按照 6點設置吧。 不要設置什麼20分、30分這樣的,這樣不好的。
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章