2012年6月6日

Application Pool 應用程式集區

Application Pool 的概念:

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做隔離,可以降低一個網站應用程式存取另一個網站應用程式資源的機率。
註1:需要較長的處理時間,或使用大量資源的程式


整合模式和傳統模式:

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: 工作者處理序

沒有留言:

張貼留言