Web Garden

Web Garden 是 IIS 6.0 引入的另外一個概念,在 IIS 7.0 中,這個概念仍然有效。利用這個概念,可使用多工做進程來處理同一個應用程序池。數據庫

Web Garden 能夠有效地提升系統性能,並具備如下優點:服務器

(1)當一個工做進程由於集中關注處理某事而沒法完成其餘處理任務時,其餘工做進程仍然可以處理新的請求。ide

(2)減小了資源的爭用。在正常操做過程當中,每一個新的頁面請求都被指派給一組工做進程中的某個進程,指派時,咱們使用輪詢方式完成指派工做。這樣就可使工做進程的工做負載儘量地平滑。性能

由於一個單獨的應用程序老是在被分割後以多個進程爲載體運行,所以,一個應用程序中共享的內容必須保存在進程以外。例如,在一個 Web garden 中,會話狀態在進程內是沒法工做的,由於在一個Web garden 中存在會話狀態的多個副本,每一個進程均可以讀寫某個會話狀態,並將這個會話狀態保存在不一樣的會話狀態存儲區。進程

某些 Web 應用程序更適合使用 Web Garden。如下是使用 Web Garden 的最佳實踐指南:內存

(1)Web 應用程序不該該是一個須要消耗大量 CPU 資源的應用程序,這是由於,令一個須要消耗大量 CPU 的頁面請求與一個首次訪問頁面的請求爭用 CPU 資源,只會致使兩敗俱傷。資源

(2)若是一個應用程序同步延遲比較高,那麼這個應用程序就比較適合於 Web Garden。例如,若是應用程序調用了一個 Web 服務或者訪問了一個遠程數據庫,從而致使系統響應遲緩,那麼利用 Web Garden,咱們就能夠在等待長時間執行的應用程序完成處理工做的過程當中,處理其餘請求。同步

(3)每一個進程都存在內存負擔,啓動時須要額外的時間開銷,這類進程若是太多,那麼就很容易耗盡一臺服務器的資源。it

儘管 Web Garden 和 Web farm 存在某些共同特徵,可是,Web Garden 和 Web farm 是徹底不一樣的概念。Web Garden 是由運行於一臺服務器中的多個進程組成的,這些進程用於處理同一個應用程序池;而Web farm 則是由多臺服務器組成,這些服務器能夠協同工做,提供較高的可用性和較好的可伸縮性。class

相關文章
相關標籤/搜索