公司的一個網站程序長時間運行後,速度變慢,重新啟動網站後速度明顯變快,估計是網站程序占用的內存和CPU資源沒能及時釋放,才需要每隔一段時間重啟網站釋放資源。但手工重啟總不能算解決問題的方法,怎樣才能實現自動管理呢IIS6.0的應用程序池自動回收功能可以解決這一問題。
應用程序池是將一個或多個應用程序鏈接到一個或多個工作進程集合的配置。因為應用程序池中的應用程序與其他應用程序被工作進程邊界分隔,所以某個應用程序池中的應用程序不會受到其他應用程序池中應用程序所產生的問題的影響。
為Web程序配置應用程序池需要以下步驟:1)創建應用程序池,右鍵單擊“應用程序池”,“新建/應用程序池”,命名為KefuAppPool;2)為Web程序指定應用程序池,在網站虛擬目錄屬性“應用程序設置”裡(電腦自動關機)面的“應用程序池(N)”裡(電腦自動關機)選擇KefuAppPool;3)應用程序池自動回收方式的設置。回收方式有如下幾種:
a.根據運行時間
系統默認是1740分鐘,也就是29個小時,這個不是很好控制,建議不用。
b.請求數目
這個要看具體的情況了。如果只有10個請求,可是有5個都在請求那個比較占資源的頁面(可能是統計年度報表之類),這個時候就會出現進程當掉的情況,如果請求有1000個可是一個也沒運行比較占資源的頁面,這個時候進程肯定是很正常的,所以根據請求的數目來決定也不一定符合實際需要。
c.計劃的時間
這個其實很好,不過具體什麼時間回收好呢通常我們都是設置在凌晨兩(電腦沒聲音)三點鐘,這個時候回收是有必要的,不過針對出現隨時可能出現是高內存占用並不是很適用。
d.內存(虛擬內存或已使用的內存)
這個針對出現內存問題引起的進程當掉實在太合適了,不過設置多大的值比較好是一個很重要的問題,值不能太小了,否則如果訪問量都很大超過這個值的時候也會自動回收,這個就很沒必要了。一定要多多觀察進程的實際占用情況再做決定。
下面重點談談對工作進程回收應用程序池的理解。
默認情況下,WWW服務建立“重疊回收”,即繼續運行要終止的工作進程,直到啟動新的工作進程後為止。 在重疊回收方案中,要回收的進程繼續處理請求,同時 WWW 服務創建一個替代工作進程。在停止舊工作進程之前啟動新的工作進程,然後將請求定向到新的進程。此設計可以防止服務中斷,因為舊進程關閉前仍然保持與 HTTP.sys 的通信以處理請求。因為可重1 2 3 4 下一頁
Windows 2003中IIS 6.0應用程序池回收和工作進程詳解