Application Pool(以下簡稱 A-Pool)是 IIS7管理網站應用程式的一個機制,每個網站都會執行至少一個的應用程式,而 A-Pool底下則會管理一至數個不同網站的應用程式。
管理者可以建立多個 A-Pool,把網站分別放在不同的 A-Pool中執行,數支 A-Pool在伺服器上運作時,會佔用不同的記憶體空間,產生各自的執行程序,並運作在不同的 Session內,藉此分隔網站應用程式,不使其互相影響。
當其中一個 A-Pool被停止或回收時,該 A-Pool底下管轄的所有網站應用程式都會同時被停止或回收掉;若 A-Pool中有某個網站應用程式出現問題時,同一個 A-Pool內的其他網站應用程式也都會因為運作在同一個 Session內而受到影響(例如執行速度變慢,甚至同時當掉)。
要注意的是,網站開發時採用哪個版本的 .NET Framework,部署到 IIS時,就必須使用相同 .NET Framework版本的 A-Pool。
Application Pool的優點:
- 增進伺服器及應用程式效能:可以把資源密集型(註1)的應用程式指派給專屬的 A-Pool,使其他 A-Pool中的網站應用程式效能不會受到影響而下降。
- 改善應用程式可用性:如果一個 A-Pool中的網站應用程式出了問題,也不會影響到另一個 A-Pool中的網站應用程式。
- 增強安全性:透過 A-Pool做隔離,可以降低一個網站應用程式存取另一個網站應用程式資源的機率。
整合模式和傳統模式:
A-Pool的模式會影響伺服器對 Managed程式碼處理要求的方式。
- 整合式模式:IIS7以一條整合的要求處理管線
(Request Processing Pipeline)來處理 IIS和 ASP.NET的
要求。 - 傳統模式:IIS7以兩條各自獨立的 IIS和 ASP.NET要求處理管線來處理
ASP.NET的要求(如同IIS 6)。
Application Pool可以設定隔多久時間,或是在固定的時間回收一次資
源,還可以設定此 A-Pool的佔用記憶體上限。
參考資料:
網站
在 IIS 7 中管理應用程式集區
IIS 7 基礎觀念:網站、應用程式、與虛擬目錄
App Pool vs. App Domain
設定應用程式集區(AppPool)防止Server上的Web應用程式彼此干擾
IIS 7五大核心元件之5: 工作者處理序
沒有留言:
張貼留言