服务器 频道

Server2003对决2008系列之磁盘性能对比

  【IT168评测中心】在上一篇Server2003对决2008系列之文件服务器对比中我们对比了32bit系统下的2003和2008的网络文件系统CIFS的实际性能,2008表现出强劲的实力,然而有读者担心2008相对更快的网络文件系统性能会不会对硬盘带来更多的负担?我们的回答是不会,网络文件系统和磁盘系统不同,更多地是操作系统的网络子系统以及文件系统的影响,而对于磁盘子系统来说,负荷总是几乎满载的。我们接着对比了Windows Server 2003和Windows Server 2008的磁盘性能,企图来说明这个问题。


Windows Server 2008

 


Windows Server 2003

  我们使用的是IOMeter 2006.07.21版本,为了详细得出2003和2008的磁盘子系统的差异,我们将通常的测试步骤多加入了两套设置,最终我们分别测试了三套配置:单硬盘、双硬盘RAID0测试,以及最后的RAID 0多Worker(一个Worker相当于一个测试程序的子进程)测试。

  • IOMeter 2006.07.21

  IOMeter是一款功能非常强大的IO测试软件,它除了可以在本机运行测试本机的IO(磁盘)性能之外,还提供了模拟网络应用的能力。在这次的测试中,我们仅仅让它在本机运行测试服务器的磁盘性能。为了全面测试被测服务器的IO性能,我们分别选择了不同的测试脚本。

  • Max_throughput(read):文件尺寸为64KB,100%读取操作,随机率为0%,用于检测磁盘系统的最大读取吞吐量

  • Max_IO(read):文件尺寸为512B,100%读取操作,随机率为0%,用于检测磁盘系统的最大读取操作IO处理能力

  • Max_throughput(write):文件尺寸为64KB,0%读取操作,随机率为0%,用于检测磁盘系统的最大写入吞吐量

  • Max_IO(write):文件尺寸为512B,0%读取操作,随机率为0%,用于检测磁盘系统的最大写入操作IO处理能力

  • FileServer:一系列操作,用于检测磁盘系统用作文件服务器时的最大读取操作IO处理能力

  • WebServer:一系列操作,用于检测磁盘系统用作网站服务器时的最大读取操作IO处理能力

  • DatabaseServer:一系列操作,用于检测磁盘系统用作数据库服务器时的最大读取操作IO处理能力

DELL 2950测试平台

主板 DELL
处理器 Xeon E5430 x 2
主频 2.66GHz
FSB 1333MHz
L1容量 64K(Data容量为32K)
L2容量 12MB(共享)
芯片组 Intel 5000X
内存 2GB FBD DDR2 667 SDRAM x 8
磁盘控制器 LSI Logic MegaRAID SAS 8708ELP
硬盘 Seagate Cheetah 146GB 15K.5 SAS x 3
Seagate Barracuda ES.2 1TB
SAS x 2
硬盘设置 RAID 5,条带大小64KB,适应性预读,Cached IO
主系统分区30GB,次分区50GB,NTFS格式
RAID 0,条带大小64KB,适应性预读,Cached IO
RAW分区,1.81TB(硬盘厂商的2TB)
网卡 Broadcom BCM5708C千兆网卡 X 4

  我们采用了评测中心的一台DELL 2950服务器,配置了双路Intel 45nm Xeon E5430处理器,频率为2.66GHz,并能支持SSE4.1指令集。服务器还使用了Intel 5000X芯片组,提供24MB的Snoop Filter缓存,这可以提升高负荷时的内存/处理器性能。主操作系统的磁盘系统则是3块15000RPM的Cheetah 15K.5,并通过一块PCIe x8的LSI MegaRAID SAS 8408ELP来组建RAID 5阵列,被测试磁盘系统基于两块Seagate 酷鱼ES.2 1TB组成的RAID 0阵列。

  虽然本次测试中没有运用到:我们使用了4块Broadcom BCM5708C千兆网卡,并使用了Broadcom驱动的Team功能。

对比测试环境

A Windows Server 2008 Enterprise Edition
B Windows Server 2003 Enterprise Edition

  单Worker就是我们测试的时候经常采用的方式,它只具有一个测试线程,因此对操作系统的负担很小,主要是直接给存储子系统施加压力。


2003 vs 2008 : 连续IOps


2003 vs 2008 : 连续IOps


2003 vs 2008 : 随机IOps


2003 vs 2008 : 随机IOps


2003 vs 2008 : 连续读取速率


2003 vs 2008 : 连续写入速率

  基本上,曲线都是重合的,在阵列状态和非阵列状态,2003和2008都没有太大区别,只是在最大连续写入IOps和连续写入速率上,2008略好一点。


2003 vs 2008 : 文件服务器


2003 vs 2008 : 网站服务器


2003 vs 2008 : 数据库服务器


2003 vs 2008 : 工作站

  而在模拟实际应用的4个测试项目当中,2003则表现略微好一些,综合上一页的表现,我们认为在这种情况下两个操作系统没有什么分别。

  看到几乎相同的测试性能之后,我们并没有停止思考:单Worker的情况只能测试到操作系统很少的一部分,我们需要测试多Worker情况。于是我们测试了16个Worker下的情况,这样每个核心可以分配到两个工作线程,从而可以测试到操作系统对线程的同步以及调度能力,并且也可以测试到操作系统的内存管理能力、驱动程序接口的多线程协作能力等等。在服务器实际工作的时候,这样多Worker的情况并不少见。


2003 vs 2008 : 连续IOps


2003 vs 2008 : 连续IOps

  连续IOps上和单Worker情况不太一样,原先我们以为单Worker写入略具优势的2008在多Worker下会将差距拉大,结果并不是这样:多Worker下2003和2008差别并不大,反而是读取上2008表现比较好,虽然曲线很曲折,然而整体上要高于2003。


2003 vs 2008 : 随机IOps


2003 vs 2008 : 随机IOps

  可以看出随机读取的差别很微小,主要是受限于控制卡和磁盘,而随机写入的差别稍大,在队列深度256时脱离了误差的范围,我们认为2008确实具有一些优势。


2003 vs 2008 : 连续读取速率


2003 vs 2008 : 连续写入速率

   在16个Worker连续读取和写入测试上,我们确确实实看到了2008的优势。在需要实际操作磁盘的连续读取情况,2008要比2003在4、8、256队列深度上都要高出近10%,而在不是100%实际操作磁盘的连续写入情况(有一部分是对阵列卡缓存直接操作)下,2008要好5%左右,这表明2008的线程调度、内存管理、驱动程序接口上面确实具有一些优势,虽然并不是非常明显。


2003 vs 2008 : 文件服务器


2003 vs 2008 : 网站服务器

 
2003 vs 2008 : 数据库服务器


2003 vs 2008 : 工作站

  2008在多Worker情况下具有潜在的理论上的优势,这一点到了实际应用中也可以反映出来:2008的测试性能要轻微地好一些,大致上可以忽略。

0
相关文章