遷移到 Windows x64 的伺服器應用

發佈日期: 2007 年 8 月 1 日

作者: 賴榮樞
http://www.goodman-lai.idv.tw

除了穩定與快速,Windows x64 運算環境的優點還包括能支援更大的實體記憶體定址空間、更多的平行運算處理器,以及 32 位元 Windows 應用軟體的二進位相容。這些優點讓遷移到 Windows x64 增添了更多的彈性與便利,而目前遷移到 Windows x64 運算環境的尤以伺服器應用居多,因此本文將簡述幾種從 32 位元遷移到 Windows x64 的伺服器應用。

本頁內容

終端服務
資料庫伺服器
AD 目錄服務
網頁伺服器
微軟如何將 Microsoft.com 遷移到 Windows Server 2003 x64
高效能運算
結語

更大的實體記憶體定址空間對於需要處理龐大資料的情況有很大的助益,因為這能讓應用程式一次就將更多的資料載入實體記憶體進行處理,甚至如果電腦所安裝的實體記憶體夠多,更可以一次就將所有要處理的資料全都載入實體記憶體,省去資料在實體記憶體和虛擬記憶體之間切換所浪費的時間與資源。

再者,Windows Server 2003 x64 也支援數量更多的處理器 (標準版支援四顆、企業版支援八顆,而 Datacenter 版本支援的處理器數量更高達 64 顆),只要軟體支援平行處理,就能將工作分配給各個處理器一起運算,而能加快處理速度。

能因此而達到最明顯且實質效益的應用,莫過於伺服器軟體。以下便分別說明幾種效益最大的 Windows Server 2003 x64 伺服器應用。

終端服務

Windows Server 2003 x64 非常適合當作終端服務的部署平台。目前大部分執行在終端服務的應用程式都還是 32 位元用戶端程式,能與 Win32 程式保持良好相容性的 Windows Server 2003 x64,可以利用 WOW64 子系統繼續執行這些 32 位元程式,而 Windows Server 2003 x64 除了能提供更多的處理器能量,也能提供更多的記憶體給整個執行環境,包括分頁表項目(Paging Table Entry,PTE)、已分頁和未分頁集區都能大幅提昇(根據微軟文件的測試數據,分頁表項目會從 600 MG 到 900 MB 提高到 128 GB、已分頁和未分頁集區會分別從 470 MB 和 256 MB 提高到 128 GB)。

舉例來說,如果以 32 位元、四顆處理器的 Windows Server 2003 標準版為例,最多大約可以讓 280 位使用者連線運作;不過現實的條件,大部分的終端服務實際上大多部署在一或兩顆處理器的伺服器,而且能夠提供的連線使用者數量也遠低於 280 位使用者。原因在於處理器資源或使用者模式記憶體耗盡之前,系統核心通常已經早一步用盡分頁表項目。

但若升級到 Windows Server 2003 x64 標準版,系統核心的虛擬記憶體上限將能擴大到 8 TB,因此核心便有更充足的虛擬記憶體來服務更多的連線使用者。

資料庫伺服器

資料庫伺服器就是一個因為實體記憶體的大幅擴充而能有明顯受益的例子,只要伺服器電腦安裝了足夠的實體記憶體,甚至都能將完整的資料庫全都載入實體記憶體,再加上多處理器平行運算的支援,因此可以讓效能有極大的改善。

就算只是在 Windows Server 2003 x64 執行 32 位元的資料庫軟體,還是能夠因此受益,因為 32 位元 Windows 軟體是在 Windows x64 的 WOW64 子系統執行,而 WOW64 能提供 Win32 行程 4 GB 的虛擬記憶體空間,這個數量是 32 位元 Windows 環境的一倍。

Windows x64 能與 32 位元 Windows 應用軟體二進碼相容,這項優點能讓企業循序的將 Win32 軟體逐步升級到 Windows x64 版本:目前 x64 硬體、Windows x64 作業系統、驅動程式均已就緒,而且許多應用軟體也都有 Windows x64 版本(尤其是伺服器軟體),因此企業可以先將硬體升級到 x64、作業系統升級到 Windows Server 2003 x64,並且將已經有 Windows x64 版本的伺服器軟體先行升級,而暫時以 Windows x64 的 WOW64 子系統執行 32 位元伺服器軟體,然後再陸續將所有的應用軟體、伺服器軟體升級到 Windows x64 版本。

也由於 Windows x64 的操作和管理幾乎都與 32 位元 Windows 作業系統相同,因此 IT 人員幾乎可以沿用原本的工具、方法來管理 Windows x64,以及在 Windows x64 環境執行的 Win32 軟體。

AD 目錄服務

在 32 位元網域控制器的 AD,若其物件超過 1 萬個,其快取大小以及能放入記憶體的 AD 數量,都會受到核心模式 2 GB 虛擬記憶體定址空間的限制,並且會導致整個效能下降而造成問題。因此,若升級到 Windows Server 2003 x64,其 8 TB 的虛擬記憶體定址空間,將能舒緩上述虛擬記憶體空間不足的問題。

將大型的 AD 目錄服務部署在 Windows Server 2003 x64,可以將整個 AD 載入記憶體並直接處理,除了不會再受到 2 GB 的虛擬記憶體限制,也會因為直接在記憶體處理 AD 資料而能免去磁碟 I/O、加快處理速度。

網頁伺服器

現在有許多網頁伺服器已經不只是單純的顯示資訊內容而已,而是分散式應用程式或電子商務應用的重要一環。同樣的,大型的網頁伺服器也會受到 32 位元 Windows 作業系統每個行程 2 GB 虛擬記憶體的限制。

在 32 位元的環境,當行程用盡虛擬記憶體,就必須重新起始行程,並且清理虛擬記憶體空間、再從磁碟載入資料,才能繼續執行。IIS 6.0 會自動處理這些工作,也可以讓管理者手動進行;但是只要重新起始網頁應用程式的行程,就會中斷程式的執行,直到重新起始完成之後,才能恢復網頁應用程式的執行。而這一中斷(雖然可能只有幾分鐘),對許多企業或許就是不小的損失。

將現有的 IIS 6.0 ASP.NET 程式移到 Windows Server 2003 x64 並不需要修改 ASP.NET 程式,而且虛擬記憶體空間即可提升到 4 GB,這對網頁應用程式的效能和穩定性都有很大的助益。

微軟如何將 Microsoft.com 遷移到 Windows Server 2003 x64

微軟的 IT 部門都是自家產品的先行試用者,在 Windows Server 2003 x64 正式推出的前一年(2004 年四月),負責微軟網站(Microsoft.com)的作業小組,已經針對 Windows Server 2003 x64 伺服器展開內部測試及評估,實作的方法是將 Windows Server 2003 x64 的預覽版本安裝在微軟網站的網頁伺服器,並對 Windows x64 伺服器進行評估。

微軟公司網站 Microsoft.com 是網際網路上最大且瀏覽最頻繁的網站之一,被評比為任何指定一天中第四或第五最忙碌的網站。整個 Microsoft.com 企業橫跨三個資料中心,並且由數以千計的伺服器所組成,使用超過一千個資料庫、支援數千種 Web 應用程式,換言之,www.microsoft.com 每天平均有超過一千三百萬的唯一使用者與七千萬的網頁檢視。這些使用者平均每秒執行一萬個連線,並且在總共八十台的網頁伺服器上維護平均三十萬個同時連線。

因此就算只是測試,也不只是將靜態網頁丟進受測的 Windows Server 2003 x64 而已,還要測試在網頁伺服器執行的 ISAPI 篩選器、COM 元件、ASP.NET 1.1 網頁應用程式,而這些皆為 32 位元程式。測試團隊讓這些 32 位元程式順利且正確的在 Windows Server 2003 x64 的 WOW 子系統執行,包括讓 IIS 使用 32 位元的行程。

Microsoft.com 作業小組發現將 Microsoft.com 網頁伺服器遷移到 x64 為主的平台,有兩大效能提升。首先是處理器的使用率大幅下滑,這是因為應用程式集區回收較不頻繁或甚至已經不需要。作業小組也發現應用程式集區完全不再回收,或是以數週的頻率而不是幾分鐘的頻率來回收。這是個非常重要的效能議題。

除了降低了處理器的使用率(大約降低了 50%),32 位元伺服器也經歷顯著的尖峰波形,將常會讓處理器的使用率高達 100%。作業小組判斷出當一或多個應用程式集區用完虛擬記憶體並回收時,就會發生尖峰波形。在 x64 為主的伺服器上,這些尖峰波形並不存在,因為應用程式集區不會再用完記憶體。

第二個效能提升,是大幅改善應用程式的回應時間。這直接導致使用者經驗的改善,因為伺服器再也不需要佇列或維護要回收的開啟連線,或是佇列或維護因 2 GB 或將近 2 GB 的虛擬記憶體限制而執行效能差的應用程式,伺服器可以對要求回應更快速並且更一致。作業小組發現過去執行效能最差的應用程式增加了最大的回應時間,這些應用程式的效能增加相當的可觀。

完整的遷移白皮書,可以參閱 Microsoft.com 遷移至 x64 版本的 Windows。此外,Microsoft.com 作業小組也在 2005 年的部落格文章 Running Microsoft.com on 64 Bit...The Dependencies, The Goodness, the Gotcha's (英文) 分享了許多經驗。

高效能運算

高效能運算(High-performance computing,HPC)以及高效能運算叢集(High-performance computing clusters,HPCC)也非常適合 Windows Server 2003 x64。這一類的應用都十分注重效能、穩定性,需要平行處理來計算大量的資料,因此處理器和記憶體的數量對這類應用便顯得格外重要。

因此支援更多處理器和記憶體的 Windows Server 2003 x64,很能符合高效能運算的需求。尤其 Windows Server 2003 x64 能讓高效能運算叢集的每個節點支援到 TB 的實體記憶體和 8 TB 的虛擬記憶體,而且 Windows x64 架構也改善了整個執行的穩定性和效能。

結語

更大的記憶體定址空間以及 32 位元的良好相容性,是 x64 處理器受到市場青睞的主要原因,雖然 x64 處理器亦能執行 32 位元作業系統,但是 64 位元的軟體才能完全發揮 x64 處理器的效益。

隨著微軟推出 Windows Server 2003 x64 以及 Windows XP Professional x64,目前整個 Windows x64 應用的底層環節(包括硬體、驅動程式、作業系統)已經建置妥當,而許多廠商也逐漸往上建置其他的應用軟體,包括伺服器軟體、多媒體內容製作軟體、遊戲、科學運算軟體,準備將完整的 Windows x64 應用帶給企業及使用者。

但也由於 Windows x64 完全善用 x64 相容 32 位元的特性,32 位元 Windows 程式可以利用 WOW64 子系統在 Windows x64 執行,而且執行效能甚至優於 32 位元 Windows 環境,原因除了新一代的硬體架構採用了更快的速度、更大的匯流排頻寬、加裝了更多的記憶體之外,也因為 Windows x64 能夠支援更多的記憶體定址空間,包括實體記憶體空間和虛擬記憶體空間,而讓 32 位元程式也能受惠。

雖然完整的 x64 軟體才能完全發揮 x64 硬體的效益,但因為優異的 32 位元相容性以及執行效能,讓企業可以採取循序升級的作法,也就是先升級硬體及作業系統,應用軟體的部分可以先採取混合 32 位元的方式,再適時的將應用軟體也升級到 Windows x64 版本。

參考資料