在上一篇Server对决之文件服务器对比对比中我们对比了bit系统下的和的网络文件系统CIFS的实际性能表现出强劲的实力然而有读者担心相对更快的网络文件系统性能会不会对硬盘带来更多的负担?我们的回答是不会网络文件系统和磁盘系统不同更多地是操作系统的网络子系统以及文件系统的影响而对于磁盘子系统来说负荷总是几乎满载的我们接着对比了Windows Server 和Windows Server 的磁盘性能企图来说明这个问题 Windows Server Windows Server 我们使用的是IOMeter 版本为了详细得出和的磁盘子系统的差异我们将通常的测试步骤多加入了两套设置最终我们分别测试了三套配置单硬盘双硬盘RAID测试以及最后的RAID 多Worker(一个Worker相当于一个测试程序的子进程)测试 IOMeter IOMeter是一款功能非常强大的IO测试软件它除了可以在本机运行测试本机的IO(磁盘)性能之外还提供了模拟网络应用的能力在这次的测试中我们仅仅让它在本机运行测试服务器的磁盘性能为了全面测试被测服务器的IO性能我们分别选择了不同的测试脚本 Max_throughput(read)文件尺寸为KB%读取操作随机率为%用于检测磁盘系统的最大读取吞吐量 Max_IO(read)文件尺寸为B%读取操作随机率为%用于检测磁盘系统的最大读取操作IO处理能力 Max_throughput(write)文件尺寸为KB%读取操作随机率为%用于检测磁盘系统的最大写入吞吐量 Max_IO(write)文件尺寸为B%读取操作随机率为%用于检测磁盘系统的最大写入操作IO处理能力 FileServer一系列操作用于检测磁盘系统用作文件服务器时的最大读取操作IO处理能力 WebServer一系列操作用于检测磁盘系统用作网站服务器时的最大读取操作IO处理能力 DatabaseServer一系列操作用于检测磁盘系统用作数据库服务器时的最大读取操作IO处理能力 DELL 测试平台 主板DELL处理器Xeon E x 主频GHzFSBMHzL容量K(Data容量为K)L容量MB(共享)芯片组Intel X内存GB FBD DDR SDRAM x 磁盘控制器LSI Logic MegaRAID SAS ELP硬盘Seagate Cheetah GB K SAS x Seagate Barracuda ES TB SAS x 硬盘设置RAID 条带大小KB适应性预读Cached IO 主系统分区GB次分区GBNTFS格式 RAID 条带大小KB适应性预读Cached IO RAW分区TB(硬盘厂商的TB)网卡Broadcom BCMC千兆网卡 X 我们采用了评测中心的一台DELL 服务器配置了双路Intel nm Xeon E处理器频率为GHz并能支持SSE指令集服务器还使用了Intel X芯片组提供MB的Snoop Filter缓存这可以提升高负荷时的内存/处理器性能主操作系统的磁盘系统则是块RPM的Cheetah K并通过一块PCIe x的LSI MegaRAID SAS ELP来组建RAID 阵列被测试磁盘系统基于两块Seagate 酷鱼ES TB组成的RAID 阵列 虽然本次测试中没有运用到我们使用了块Broadcom BCMC千兆网卡并使用了Broadcom驱动的Team功能 对比测试环境 AWindows Server Enterprise EditionBWindows Server Enterprise Edition单Worker就是我们测试的时候经常采用的方式它只具有一个测试线程因此对操作系统的负担很小主要是直接给存储子系统施加压力 vs : 连续IOps vs : 连续IOps vs : 随机IOps vs : 随机IOps vs : 连续读取速率 vs : 连续写入速率 基本上曲线都是重合的在阵列状态和非阵列状态和都没有太大区别只是在最大连续写入IOps和连续写入速率上略好一点 vs : 文件服务器 vs : 网站服务器 vs : 数据库服务器 vs : 工作站 而在模拟实际应用的个测试项目当中则表现略微好一些综合上一页的表现我们认为在这种情况下两个操作系统没有什么分别 看到几乎相同的测试性能之后我们并没有停止思考单Worker的情况只能测试到操作系统很少的一部分我们需要测试多Worker情况于是我们测试了个Worker下的情况这样每个核心可以分配到两个工作线程从而可以测试到操作系统对线程的同步以及调度能力并且也可以测试到操作系统的内存管理能力驱动程序接口的多线程协作能力等等在服务器实际工作的时候这样多Worker的情况并不少见 vs : 连续IOps vs : 连续IOps 连续IOps上和单Worker情况不太一样原先我们以为单Worker写入略具优势的在多Worker下会将差距拉大结果并不是这样多Worker下和差别并不大反而是读取上表现比较好虽然曲线很曲折然而整体上要高于 vs : 随机IOps vs : 随机IOps 可以看出随机读取的差别很微小主要是受限于控制卡和磁盘而随机写入的差别稍大在队列深度时脱离了误差的范围我们认为确实具有一些优势 vs : 连续读取速率 vs : 连续写入速率 在个Worker连续读取和写入测试上我们确确实实看到了的优势在需要实际操作磁盘的连续读取情况要比在队列深度上都要高出近%而在不是%实际操作磁盘的连续写入情况(有一部分是对阵列卡缓存直接操作)下要好%左右这表明的线程调度内存管理驱动程序接口上面确实具有一些优势虽然并不是非常明显 vs : 文件服务器 vs : 网站服务器 vs : 数据库服务器 vs : 工作站 在多Worker情况下具有潜在的理论上的优势这一点到了实际应用中也可以反映出来的测试性能要轻微地好一些大致上可以忽略 评测中心观点 尽管非常微小然而我们的确观测到了的磁盘性能具有着一些优势这些优势是表现了在线程调度内存管理驱动程序接口上面相对得到了改进虽然我们目前难以断定磁盘性能的提升具体是由于哪一方面的原因 再回到我们第一页所说的网络文件性能上在多个客户端应用情况下的磁盘系统确实处于多个Worker的情况这时的性能会比的好上一些然而这些是因为线程调度内存管理驱动程序接口这几个方面实际对磁盘的压力是一样的 Windows Server 的磁盘性能得到了轻微的提升 从测试结果来看在大部分情况下和的磁盘性能都是一样的只有在负荷非常沉重的情况下才可以展现其优势因此磁盘性能并不是决定选择的因素 |