您现在的位置: 破洛洛 >> 服务器 >> windows 2003 >> 正文

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

作者:佚名 来源:网络整理 更新时间:2008-9-27
分享到

    在上一篇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的测试性能要轻微地好一些,大致上可以忽略。

    评测中心观点

    尽管非常微小,然而我们的确观测到了2008的磁盘性能具有着一些优势,这些优势是表现了2008在线程调度、内存管理、驱动程序接口上面相对2003得到了改进,虽然我们目前难以断定磁盘性能的提升具体是由于哪一方面的原因。

    再回到我们第一页所说的网络文件性能上,在多个客户端应用情况下,2008的磁盘系统确实处于多个Worker的情况,这时2008的性能会比2003的好上一些,然而这些是因为线程调度、内存管理、驱动程序接口这几个方面,实际对磁盘的压力是一样的。

   
Windows Server 2008的磁盘性能得到了轻微的提升

 

    从测试结果来看,在大部分情况下2003和2008的磁盘性能都是一样的,只有在负荷非常沉重的情况下2008才可以展现其优势,因此磁盘性能并不是决定选择的因素。

转载请注明:破洛洛(谢谢合作)
网友评论: