【IT168评测中心】服务器作为企业多种网络相关应用的核心设备,其性能影响到企业的日常应用。而提到性能,无论用作文件服务器、邮件服务器、数据库服务器等等何种用途,服务器子系统的性能始终作为基础。在我们日常的测试项目中,服务器子系统的性能也作为我们衡量服务器整体性能的关键指标。熟悉我们测试过程的读者会发现,ScienceMark等几款软件是我们日常测试服务器子系统性能的必备软件。本文主要研究的是处理器数量和内存数量对于ScienceMark相关测试的影响。
在本文的测试中,我们使用的是ScienceMark v2.0版测试软件。它是一款用于测试系统特别是处理器在科学计算应用中的性能的软件,我们重点考察的MemBenchmark测试项目是其中针对处理器缓存、系统内存而设计的功能模块,它可以测试系统内存带宽、L1 Cache延迟、L2 Cache延迟和系统内存延迟,另外还可以测试不同指令集的性能差异。
本次我们测试使用的服务器为戴尔PowerEdge 2900 III。服务器的基本规格如下:
测试服务器基本信息 | |
服务器型号 | Dell PowerEdge 2900 III |
处理器 | Intel 至强 E5430 x 2 |
内存 | 2GB FBD DDR2 667 SDRAM x 4 |
主板芯片组 | Intel 5000X芯片组 |
硬盘 | Seagate Cheetah 15K.5 |
硬盘控制器 | DELL Perc 5/i RAID Controller |
阵列卡测试 | WriteBack, Cached I/O, Adapative Read Ahead |
硬盘设置 | RAID 5,条带大小64KB 主分区20GB,测试分区50GB |
网卡 | Broadcom BCM5708C千兆网卡 X 2 |
操作系统 | Windows Server 2003 R2 Enterprise Edition SP2 |
我们使用了一台安装了Windows Server 2003 R2操作系统的DELL PowerEdge 2900 III服务器作为测试平台。由于本文主要研究处理器数量及系统内存容量对于ScienceMark最终测试结果的影响,所以在测试中,我们分别尝试使用数量不同的处理器和内存进行搭配,考察在Memory Benchmark下测试结果变化的影响幅度。
ScienceMark软件无须安装,可在直接拷贝之后用于测试。打开软件之后,我们可以看到包括内存测试测试之内的众多内容。同时,软件还可以识别当前系统的硬件信息。
点击测试项目中的Run BenchMark之后,就会出现如上图的一个测试项目表格,其中包括内存带宽、L1 Cache延迟、L2 Cache延迟和系统内存延迟等多方面内容的测试。表格的右半部分则是各项指令集的测试内容。
用户点击Analyze按键,稍后就会得出一个包括上述测试项目的数据,也就是我们用于判断服务器内存性能的ScienceMark成绩。
ScienceMark Membench | |||
处理器 | 双路E5430 | 双路E5430 | 双路E5430 |
内存技术参数 | 2GB FBD ECC DDR2-667 SDRAM x1 | 2GB FBD ECC DDR2-667 SDRAM x2 | 2GB FBD ECC DDR2-667 SDRAM x4 |
L1带宽(MB/s) | 74610.85 | 73006.88 | 74612.09 |
L2带宽(MB/s) | 22332.97 | 22336.02 | 22328.73 |
内存带宽(MB/s) | 2691.79 | 3757.80 | 4479.89 |
L1 Cache Latency(ns) | |||
32 Bytes Stride | 1.13 | 1.13 | 1.13 |
L2 Cache Latency(ns) | |||
4 Bytes Stride | 1.13 | 1.13 | 1.13 |
16 Bytes Stride | 1.50 | 1.50 | 1.50 |
64 Bytes Stride | 4.51 | 4.51 | 4.51 |
256 Bytes Stride | 4.51 | 4.51 | 4.51 |
512 Bytes Stride | 4.89 | 4.89 | 4.89 |
Memory Latency(ns) | |||
4 Bytes Stride | 1.13 | 1.13 | 1.13 |
16 Bytes Stride | 5.64 | 4.89 | 4.89 |
64 Bytes Stride | 22.56 | 19.55 | 19.17 |
256 Bytes Stride | 64.66 | 61.28 | 59.77 |
512 Bytes Stride | 85.71 | 81.20 | 68.04 |
Memory Algorithm Bandwidth(MB/s) | |||
Compiler | 2320.00 | 2882.35 | 3193.00 |
REP MOVSD | 2324.80 | 2908.28 | 3217.40 |
ALU Reg Copy | 1897.52 | 2379.98 | 2709.99 |
MMX Reg Copy | 1896.39 | 2435.80 | 2972.15 |
MMX Reg 3dNow | --- | --- | --- |
MMX Reg SSE | 2688.02 | 3735.71 | 4012.77 |
SSE PAlign | 2687.01 | 3755.37 | 4323.58 |
SSE PAlign SSE | 2690.93 | 3757.80 | 4440.32 |
SSE2 PAlign | 2688.09 | 3757.38 | 4323.10 |
SSE2 PAlign SSE | 2691.79 | 3751.54 | 4436.87 |
MMX Block 4kb | 2583.20 | 3252.40 | 4061.82 |
MMX Block 16kb | 2310.93 | 2994.33 | 4475.66 |
SSE Block 4kb | 2599.01 | 3313.57 | 4073.28 |
SSE Block 16kb | 2313.20 | 2995.12 | 4479.89 |
首先我们考察的是单处理器情况下内存容量不同对于测试结果的影响。我们将服务器内存容量配置为2GB、4GB、8GB三种规格,得到了不同的测试数据。
从测试结果的表现来看,随着内存容量的增加,内存带宽和各项指令集的测试成绩也会随之增加。难道内存容量决定了测试性能的高低?不过随后的测试却出现了另外的一种情况。
ScienceMark Membench | ||
处理器 | 双路E5430 | 双路E5430 |
内存技术参数 | 1GB FBD ECC DDR2-667 SDRAM x4 | 2GB FBD ECC DDR2-667 SDRAM x4 |
L1带宽(MB/s) | 55965.41 | 55688.67 |
L2带宽(MB/s) | 16748.31 | 16730.90 |
内存带宽(MB/s) | 4513.57 | 4479.89 |
L1 Cache Latency(ns) | ||
32 Bytes Stride | 1.13 | 1.13 |
L1 Algorithm Bandwidth(MB/s) | ||
Compiler | 25280.32 | 25244.97 |
REP MOVSD | 25451.95 | 25451.67 |
ALU Reg Copy | 12960.86 | 12826.15 |
MMX Reg Copy | 25259.36 | 25348.59 |
SSE PAlign | 51777.17 | 48552.33 |
SSE2 PAlign | 55956.41 | 55688.67 |
L2 Cache Latency(ns) | ||
4 Bytes Stride | 1.13 | 1.13 |
16 Bytes Stride | 1.50 | 1.50 |
64 Bytes Stride | 4.51 | 4.51 |
256 Bytes Stride | 4.51 | 4.51 |
512 Bytes Stride | 4.89 | 4.89 |
L2 Algorithm Bandwidth(MB/s) | ||
Compiler | 11852.65 | 11882.42 |
REP MOVSD | 12551.47 | 12530.11 |
ALU Reg Copy | 8624.66 | 8590.76 |
MMX Reg Copy | 13400.21 | 13403.55 |
SSE PAlign | 16733.54 | 16715.36 |
SSE2 PAlign | 16748.31 | 16730.90 |
Memory Latency(ns) | ||
4 Bytes Stride | 1.13 | 1.13 |
16 Bytes Stride | 4.51 | 4.51 |
64 Bytes Stride | 19.17 | 19.17 |
256 Bytes Stride | 59.40 | 60.90 |
512 Bytes Stride | 68.04 | 68.04 |
Memory Algorithm Bandwidth(MB/s) | ||
Compiler | 3199.52 | 3184.41 |
REP MOVSD | 3234.82 | 3220.63 |
ALU Reg Copy | 2811.05 | 2780.84 |
MMX Reg Copy | 2942.42 | 2966.63 |
MMX Reg 3dNow | --- | --- |
MMX Reg SSE | 4030.85 | 4022.10 |
SSE PAlign | 4345.19 | 4320.64 |
SSE PAlign SSE | 4463.26 | 4443.62 |
SSE2 PAlign | 4346.90 | 4321.07 |
SSE2 PAlign SSE | 4462.34 | 4442.27 |
MMX Block 4kb | 4076.96 | 4062.40 |
MMX Block 16kb | 4502.76 | 4476.12 |
SSE Block 4kb | 4093.63 | 4083.46 |
SSE Block 16kb | 4513.57 | 4476.69 |
在随后的测试中,我们对比了4GB内存和8GB内存两种容量对于系统性能的影响。与上面测试不同的是,我们本次采用的并不是逐步增加插接的内存数量,而是选择了小容量的内存,通过1GB*4和2GB*4两种方式进行测试。而从得到的结果来看,测试数据之间并没有明显的变化,无论是L1、L2、内存带宽,还是内存本身的延迟差别都不大,可以说4GB和8GB所测得的成绩差距微乎其微。这跟我们之前的测试结论截然不同,那么这又是为什么呢?
为什么同样是4GB和8GB的内存容量,测试的结果会完全不同呢?考虑到在第二次测试时更换了内存,我们首先想到的是考察内存的规格。
三星FBD DDR2 667内存规格
三星FBD DDR2 667内存规格
在第二次测试中,我们使用了4条三星单条1GB的FBD DDR2 667内存。通过CPU-Z和EVEREST两款软件的查看,我们发现这款三星内存的时序为5-5-5-15,基本规格如上图。
奇梦达2GB FBD DDR2 667内存
奇梦达2GB FBD DDR2 667内存规格
而通过软件观察,与之对比4条奇梦达2GB FBD DDR2 667内存时序也同样为5-5-5-15,两款内存在规格上并无明显的不同。
至强E5430的CPU-Z截图
就用于测试的处理器来说,从上面的CPU-Z Cache图片中我们可以看出,本次测试使用的至强E5430处理器在L1、L2缓存设计上都使用的是8路关联,相比其他4路关联的处理器来说性能更好,在延迟测试中的表现更低,而且还能够提供更高的数据带宽。但是这只是为测试成绩提供了一个更高的起点,并不能说明差异的原因。莫非是芯片组影响了我们的测试结果?
Intel官方对于5000X芯片组的介绍
在最初的测试平台介绍中,我们提到本次测试使用的是Intel 5000X芯片组。这款芯片组虽然推出的时间较长,但仍然是一款比较有特点的芯片组。本次测试使用的Intel 5000X芯片组的一大特点就是整合了4通道FB-DIMM 533/667MHz内存控制器,最高可提供21GB/s的内存带宽。
也就是说,最初我们使用单条容量2GB的内存,按照2GB、4GB、8GB的模式逐一提升内存容量的之后,直到8GB时才实现了主板的四通道模式,而在2GB(单通道)和4GB(双通道)的时候,主板都没有达到最大的使用效率,因此成绩会出现不断提升的情况。
而当我们使用单条1GB内存和单条2GB内存分别进行4GB和8GB容量测试的时候,由于两种情况都达到了四通道的要求,所以在测试结果上的差异并不是很大。
不过,我们这样的结论是否正确呢?为了验证这样的结论,我们在保持四通道模式的基础上,将内存容量提升到了12GB。
1`
ScienceMark Membench | |||
处理器 | 双路E5430 | 双路E5430 | 双路E5430 |
内存技术参数 | 1GB FBD ECC DDR2-667 SDRAM x4 | 2GB FBD ECC DDR2-667 SDRAM x4 | 3GB FBD ECC DDR2-667 SDRAM x4 |
L1带宽(MB/s) | 55965.41 | 55688.67 | 55958.94 |
L2带宽(MB/s) | 16748.31 | 16730.90 | 16746.28 |
内存带宽(MB/s) | 4513.57 | 4479.89 | 4483.44 |
L1 Cache Latency(ns) | |||
32 Bytes Stride | 1.13 | 1.13 | 1.13 |
L1 Algorithm Bandwidth(MB/s) | |||
Compiler | 25280.32 | 25244.97 | 25261.68 |
REP MOVSD | 25451.95 | 25451.67 | 25403.09 |
ALU Reg Copy | 12960.86 | 12826.15 | 11825.25 |
MMX Reg Copy | 25259.36 | 25348.59 | 25357.46 |
SSE PAlign | 51777.17 | 48552.33 | 48550.02 |
SSE2 PAlign | 55956.41 | 55688.67 | 55958.94 |
L2 Cache Latency(ns) | |||
4 Bytes Stride | 1.13 | 1.13 | 1.13 |
16 Bytes Stride | 1.50 | 1.50 | 1.50 |
64 Bytes Stride | 4.51 | 4.51 | 4.51 |
256 Bytes Stride | 4.51 | 4.51 | 4.51 |
512 Bytes Stride | 4.89 | 4.89 | 4.89 |
L2 Algorithm Bandwidth(MB/s) | |||
Compiler | 11852.65 | 11882.42 | 11921.37 |
REP MOVSD | 12551.47 | 12530.11 | 12557.59 |
ALU Reg Copy | 8624.66 | 8590.76 | 8546.71 |
MMX Reg Copy | 13400.21 | 13403.55 | 13432.19 |
SSE PAlign | 16733.54 | 16715.36 | 16746.14 |
SSE2 PAlign | 16748.31 | 16730.90 | 16746.28 |
Memory Latency(ns) | |||
4 Bytes Stride | 1.13 | 1.13 | 1.13 |
16 Bytes Stride | 4.51 | 4.51 | 4.89 |
64 Bytes Stride | 19.17 | 19.17 | 19.92 |
256 Bytes Stride | 59.40 | 60.90 | 63.16 |
512 Bytes Stride | 68.04 | 68.04 | 70.30 |
Memory Algorithm Bandwidth(MB/s) | |||
Compiler | 3199.52 | 3184.41 | 3183.55 |
REP MOVSD | 3234.82 | 3220.63 | 3235.13 |
ALU Reg Copy | 2811.05 | 2780.84 | 2784.62 |
MMX Reg Copy | 2942.42 | 2966.63 | 2938.02 |
MMX Reg 3dNow | --- | --- | --- |
MMX Reg SSE | 4030.85 | 4022.10 | 3963.69 |
SSE PAlign | 4345.19 | 4320.64 | 4346.05 |
SSE PAlign SSE | 4463.26 | 4443.62 | 4378.83 |
SSE2 PAlign | 4346.90 | 4321.07 | 4350.19 |
SSE2 PAlign SSE | 4462.34 | 4442.27 | 4378.06 |
MMX Block 4kb | 4076.96 | 4062.40 | 4059.61 |
MMX Block 16kb | 4502.76 | 4476.12 | 4477.91 |
SSE Block 4kb | 4093.63 | 4083.46 | 4086.47 |
SSE Block 16kb | 4513.57 | 4476.69 | 4483.44 |
为了验证上面的说法,考察内存容量究竟会不会影响到最终的测试结果,我们将第三次测试的内存容量增加到了12GB。我们在插接了4根单条2GB内存之后,又增加了4根单条1GB内存,使系统的整体内存容量达到了12GB。
而从测试结果来看,内存容量的增加并没有对最终的测试结果造成影响,相比第二次的4GB和8GB测试成绩,12GB容量的成绩有微小的差别。由于混插不同品牌的内存,虽然内存时序大体相同,但是内存条数量和颗粒的差异还是对结果有着或多或少的影响。首先是由于内存条数量的增加,系统整体延迟也更高了一些,特别是在512 Bytes Stride项中表现得由为突出。不过这点微小的差别对于整体测试结果并不会产生决定性的影响,事实上12GB测试结果与4GB、8GB容量下的结果相比差别不大,所以我们可以认为——在满足测试主板通道全部开启的前提下,内存测试的结果与内存容量的大小基本无关,测试成绩主要取决于被测内存本身。
ScienceMark Membench | ||
处理器 | 单路E5430 | 双路E5430 |
内存技术参数 | 2GB FBD ECC DDR2-667 SDRAM x4 | 2GB FBD ECC DDR2-667 SDRAM x4 |
L1带宽(MB/s) | 55953.82 | 55688.67 |
L2带宽(MB/s) | 16745.33 | 16730.90 |
内存带宽(MB/s) | 4460.41 | 4479.89 |
L1 Cache Latency(ns) | ||
32 Bytes Stride | 1.13 | 1.13 |
L1 Algorithm Bandwidth(MB/s) | ||
Compiler | 25048.56 | 25244.97 |
REP MOVSD | 25460.85 | 25451.67 |
ALU Reg Copy | 12883.48 | 12826.15 |
MMX Reg Copy | 25375.93 | 25348.59 |
SSE PAlign | 48260.40 | 48552.33 |
SSE2 PAlign | 55953.82 | 55688.67 |
L2 Cache Latency(ns) | ||
4 Bytes Stride | 1.13 | 1.13 |
16 Bytes Stride | 1.50 | 1.50 |
64 Bytes Stride | 4.51 | 4.51 |
256 Bytes Stride | 4.51 | 4.51 |
512 Bytes Stride | 4.89 | 4.89 |
L2 Algorithm Bandwidth(MB/s) | ||
Compiler | 11885.44 | 11882.42 |
REP MOVSD | 12529.20 | 12530.11 |
ALU Reg Copy | 8605.95 | 8590.76 |
MMX Reg Copy | 13438.48 | 13403.55 |
SSE PAlign | 16745.33 | 16715.36 |
SSE2 PAlign | 16738.86 | 16730.90 |
Memory Latency(ns) | ||
4 Bytes Stride | 1.13 | 1.13 |
16 Bytes Stride | 4.89 | 4.51 |
64 Bytes Stride | 19.55 | 19.17 |
256 Bytes Stride | 61.28 | 60.90 |
512 Bytes Stride | 68.42 | 68.04 |
Memory Algorithm Bandwidth(MB/s) | ||
Compiler | 3131.23 | 3184.41 |
REP MOVSD | 3181.92 | 3220.63 |
ALU Reg Copy | 2751.90 | 2780.84 |
MMX Reg Copy | 2936.99 | 2966.63 |
MMX Reg 3dNow | --- | --- |
MMX Reg SSE | 3976.80 | 4022.10 |
SSE PAlign | 4274.10 | 4320.64 |
SSE PAlign SSE | 4392.84 | 4443.62 |
SSE2 PAlign | 4282.16 | 4321.07 |
SSE2 PAlign SSE | 4389.19 | 4442.27 |
MMX Block 4kb | 4030.85 | 4062.40 |
MMX Block 16kb | 4454.26 | 4476.12 |
SSE Block 4kb | 4043.62 | 4083.46 |
SSE Block 16kb | 4460.41 | 4476.69 |
最后我们来看看处理器数量对于测试结果的影响。表格左侧的数据是使用单颗Intel至强E5430处理器的测试成绩,表格右侧的数据是使用两颗Intel至强E5430处理器的测试成绩。在同样内存容量的情况下,双处理器系统的性能提升非常有限,双路系统对于内存延迟的降低起到了一定的作用,同时也略微提高了内存带宽。不过两者在大多数测试中的成绩互有胜负,并看不出明显的性能提升。
经过我们对于不同处理器数量和不同容量内存间的测试,我们对于ScienceMark这款软件的相关测试内容有了一定的了解,通过ScienceMark测试,我们可以考察一台服务器的L1、L2性能,内存带宽性能及相关子项目测试的性能。同时,ScienceMark测试也是主板内存控制器能力的体现,对于服务器的内基准性能提供了参考数值。在本文的测试中,我们经过对测试数据的分析,得出了以下几个结论:
首先,在我们考察的Memory Benchmark测试中,L1、L2带宽测试结果与处理器本身的频率有关,与处理器数量无关。L1/L2 测试成绩与处理器及处理器内部的集合关联数量有关,越快的频率,L1/L2性能就越好;处理器内部使用越多的集合关联,测试结果越好。同时我们的测试显示,在单路和双路两种情况下,处理器数量增加并不能明显提升测试结果,两种结果的差别微乎其微。
其次,在内存延迟测试中,测试结果只与内存的规格有关,与内存总容量无关。虽然我们尝试各种内存容量,但是内存延迟几乎保持不变,只有在512 Bytes Stride项目的测试中会有差别,不过差别很小。内存带宽则与内存架构和内存操作相关,前者在对于测试结果的影响更大一些。
第三,主板所提供的内存控制器对于内存带宽和子项目测试的结果有重大影响,在满足内存控制器通道数量的前提下,ScienceMark测试的内存带宽和其他子项目结果只与被测内存的规格有关,与内存容量基本无关,但是内存条数量的增加会对内存延迟和带宽造成微小的变化。在我们测试过程中,第一次测试使用的都是2GB内存条,分别插接不同的数量实现单通道、双通道和四通道的容量变化,得到的数据提升明显。不过当更换内存,满足四通道的插接要求之后,分别对4GB、8GB、12GB内存容量进行测试,测试成绩及极其相近,性能提升微小。