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是一个更正确的选择。