決定應用程序池啟動的
設置在“應用程序池”=》高級設置=》啟動模式里。當應用程序池被回收后,是否啟動以此設置決定。若是OnDemad,則等待最近的請求。若AlwaysRunning,則立刻啟動。
決定應用程序池關閉的
是回收組設置。固定間隔一般1740分鍾,當到達時間間隔,則關閉應用程序池。是否再次啟動,取決於“啟動模式”選項,若是OnDemand則不啟動應用程序池,等待請求來才啟動。若是AlwaysRunning,則立刻啟動應用程序池。
當固定間隔設置為0時,則不固定間隔回收,應用程序池長期不回收也會有問題。此時,一般會設置特定時間去回收。
這種方案比固定間隔更好,因為1740分鍾為29小時,不容易控制。在網站在白天用戶較多情況下,回收應用程序池不明智。故特定時間更好,比如設置為晚上用戶較少時回收。
另一個影響應用程序池關閉的選項是
進程組閑置超時時間,默認20分鍾。即網站最后一個請求,20分鍾后若沒有新請求,則應用程序池執行“空閑超時操作”選項,默認Teminate為終止進程,另一個是Suspend掛起進程。
Terminate會關閉應用程序池,是否再次啟動,依舊由“啟動模式”選項決定。Suspend不會關閉應用程序池,故不存在重啟問題。
測試
為了測試方便,設置為閑置超時1分鍾。同時,打開任務管理器進程詳細
若“啟動模式”選項設置為AlwaysRunning,可觀察到每1,2分鍾,新進程啟動,舊進程關閉。
若“啟動模式”選項設置為OnDemand,可觀察到進程1,2分鍾關閉后,不再啟動。
保持高可用性,最佳策略
啟動選項:AlwaysRunning
回收間隔:0,選擇特定時間點為凌晨1點
閑置時間,可設置為1440分鍾(1天)
另一點注意
若回收使用,固定間隔策略,即設置大於0,如設置1740分鍾。
則閑置超時時間,不能超過固定間隔時間,IIS會提示。這是合理的。
由此推斷,固定間隔重啟后,即使沒有請求,閑置超時應該重新開始計算。