天天看點

2003應用池假死常見問題和解決方法

經常見到大家談起,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分這樣的,這樣不好的。