Windows Server 2008 R2的用戶體驗
Windows操作系統的升級換代總是一件盛事,特別是10月22日的Windows 7/Server 2008 R2。分析了Windows 7/Server 2008 R2的內核里關于性能、可擴展性以及節能方面的改進,現在我們將目光投向Windows Server 2008 R2的服務性能。在約18個月前,筆者也測試過了Windows Server 2008 R2的上一代Windows Server 2008,現在我們可以看看新一代的操作系統具有了什么樣的變化。
Windows Server 2008 R2,Windows NT 6.1,2009年10月22日
Windows Server 2008,Windows NT 6.0,2008年2月17日(美國)/3月13日(中國)
Windows Server 2003,Windows NT 5.2,2003年3月28日
NetBench v7.03
NetBench是針對文件服務器的性能測試軟件,影響NetBench性能的主要是服務器的磁盤子系統,服務器磁盤控制器、條帶大小、讀寫緩存、硬盤類型、組建磁盤陣列模式、內存容量、網絡拓樸結構等都會對測試結果有明顯的影響。
我們在被測服務器上設立了文件服務器,在以往,我們設置NetBench通過網絡實驗室中60個客戶端來模擬網絡中的PC向文件服務器所發出的文件傳輸請求,文件服務器則將存儲在磁盤上的文件數據發送給相應的客戶端。在09年升級了網絡實驗室和網絡客戶端之后,我們將每臺客戶端使用的壓力引擎翻倍,以充分利用客戶端的硬件資源,增大輸出壓力。
在測試過程中,客戶端會以每四臺一組的步進依次增加并且向服務器發送文件傳輸請求,測試結束后控制臺收集數據并繪制出服務器的數據傳輸變化曲線。
測試平臺
我們采用了評測中心的一臺DELL PE 2900 III服務器,它配置了雙路Intel 45nm Xeon E5430處理器,頻率為2.66GHz,并能支持SSE4.1指令集。服務器還使用了Intel 5000X芯片組,提供24MB的Snoop Filter緩存,這可以提升高負荷時的內存/處理器性能。為了避免磁盤子系統形成瓶頸,我們使用了8塊15000RPM的Cheetah 15K.5通過一塊PCIe x8接口的LSI MegaRAID SAS 8408E來組建了一個RAID 0陣列。它可以提供足夠的帶寬。
***,網絡子系統使用的是DELL PE 2900 III板載的兩塊Broadcom BCM5708C千兆網卡,并使用了Broadcom的***驅動12.26.02并使用Broadcom BACS 3.0組建了一個網卡Team。BCM5708C可謂是Broadcom一個里程碑式的千兆網卡產品,支持達8個隊列的RSS接收方縮放隊列,可以將網絡負載分配到8個處理器核心上并行處理,充分利用多核心處理器并提升網絡吞吐量。
NetBench是針對文件服務器的性能測試軟件,影響NetBench性能的主要是服務器的磁盤子系統,服務器磁盤控制器、條帶大小、讀寫緩存、硬盤類型、組建磁盤陣列模式、內存容量、網絡拓樸結構等都會對測試結果有明顯的影響。我們在被測服務器上設立了文件服務器,NetBench通過網絡實驗室中60個客戶端來模擬網絡中的PC向文件服務器所發出的文件傳輸請求,文件服務器則將存儲在磁盤上的文件數據發送給相應的客戶端。在測試過程中,客戶端會以每四臺一組的步進依次增加并且向服務器發送文件傳輸請求,測試結束后控制臺收集數據并繪制出服務器的數據傳輸變化曲線。
NetBench 7.03 Ent_dm.tst測試腳本模擬的是企業級文件服務器應用,它不但要求被測服務器的磁盤子系統可以提供足夠的吞吐量,還需要其具有較高的IO處理能力,并且需要較為平衡的讀取能力和寫入能力。
三代操作系統對比:NebBench測試性能
可見Windows Server 2008和Windows Server 2008 R2的表現比較接近,而Windows Server 2003則明顯要低不少。Windows Server 2008 R2的文件服務器吞吐量略微超過了2500Mbps。而Windows Server 2008是2250Mbps左右。Windows Server 2003 R2則只有1500Mbps左右。
之所以說具有這樣的表現有多種原因,但最主要的是兩個方面:系統內核和網絡子系統,Windows Server 2003的中斷處理只能在***個物理CPU核心上進行,這個核心很快就成為了具有大量IO(因而具有大量中斷)的服務器中的瓶頸。而到了Windows Server 2008,中斷處理(ISR和DPC)都可以發生在多個CPU核心上。而Windows Server 2008 R2對DPC的處理又做了改進。
至于網絡子系統的改進,每一代Windows都會改進其NDIS(Network Driver Interface Specification,即網絡驅動接口規范),Windows Server 2003是5.2,2008是6.10,而2008 R2是6.20。相比NDIS 5.x/6.0,Windows Server 2008的NDIS 6.1對RSS(接收方擴展)和MSI-X(擴展消息告知中斷)的支持更好,并且支持數據包的頭和數據獨立處理。Windows Server 2008 R2的NDIS 6.20對RSS作了進一步的改進。不過,我們在2008/2008R2測試下使用的驅動程序都是基于NDIS 6.0架構,因此最終結果上來看,兩個操作系統的差別不算太大。
Broadcom為BCM5708C配的***驅動仍然是基于NDIS 6.0架構
顯然,Server 2008相對于Server 2003,或者說Vista相比于XP,確實具有顯著的改進,文件服務器性能上也是如此。Vista/Server 2008搭建了一個全新的架構,包括內核、圖形架構和網絡架構。Windows 7/Windos Server 2008 R2則是在其基礎上繼續進行了較小的改動。
Windows Server 2008 R2,Windows NT 6.1,2009年10月22日
在測試中,我們使用的Broadcom BCM5708C網卡搭配的***驅動也只是基于NDIS 6.0架構,Windows Server 2008支持的NDIS 6.1和Server 2008 R2支持的NDIS 6.20都沒有派上用場。不過其它地方都有改進:
NETSH命令顯示TCP的各種加速特性的配置
雖然RSS(接收方縮放)、TCP Chimney Offload(煙囪卸載)、NetDMA、DCA等Windows Server 2003 SP1 with SNP也可以提供支持,但是Windows Server 2008以及2008 R2能做的更好??梢源_定,在文件服務器上,使用Windows Server 2008 R2是一個更正確的選擇。