处理器和内存性能测试
SPEC是标准性能评估公司(Standard Performance Evaluation Corporation)的简称。SPEC是由计算机厂商、系统集成商、大学、研究机构、咨询等多家公司组成的非营利性组织,这个组织的目标是建立、维护一套用于评估计算机系统的标准。
SPEC CPU2000是SPEC组织推出的一套CPU子系统评估软件,它包括CINT2000和CFP2000两个子项目,前者用于测量和对比整数性能,而后者则用于测量和对比浮点性能。计算系统中的处理器、内存和编译器都会影响最终的测试性能,而I/O(磁盘)、网络、操作系统和图形子系统对于SPEC CPU2000的影响非常的小。
我们在被测服务器中安装了Intel C++ 8.1 Compiler、Intel Fortran 8.1 Compiler这两款SPEC CPU2000必需的编译器,另外安装了Microsoft Visual Studio 2003.net提供必要的库文件。按照SPEC的要求我们根据自己的情况编辑了新的Config文件,可以满足Base测试,下面的测试成绩是在开启双Xeon处理器超线程条件下,4用户,SPECint_rate_base2000和SPECfp_rate_base2000。
MR200_E7520 | |||
---|---|---|---|
SPECfp rate_base2000 |
SPECint rate_base2000 | ||
开启线程数量 | 4 | 开启线程数量 | 4 |
168.wupwise | 35.2 | 164.gzip | 28.1 |
171.swim | 19.8 | 175.vpr | 22.8 |
172.mgrid | 15.3 | 176.gcc | 39.3 |
173.applu | 17.5 | 181.mcf | 16.6 |
177.mesa | 28.6 | 186.crafty | 25.2 |
178.galgel | 40.2 | 197.parser | 28.0 |
179.art | 35.2 | 252.eon | 41.0 |
183.equake | 17.5 | 253.perlbmk | 33.3 |
187.facerec | 28.5 | 254.gap | 27.5 |
188.ammp | 23.6 | 255.vortex | 51.9 |
189.lucas | 19.0 | 256.bzip2 | 26.2 |
191.fma3d | 19.2 | 300.twolf | 27.8 |
200.sixtrack | 15.8 | 总分 | 29.4 |
301.apsi | 24.9 | ||
总分 |
23.0 |
SPECfp_rate2000测试过程中同时执行多个实例(instance),测量系统执行计算密集型浮点操作的能力,比如CAD/CAM、DCC以及科学计算等方面应用可以参考这个结果。SPECint_rate 2000测试过程中同时执行多个实例(instances),然后测试系统同时执行多个计算密集型整数操作的能力,可以很好的反应诸如数据库服务器、电子邮件服务器和Web服务器等基于整数应用的多处理器系统的性能。
方正MR200_E7520服务器的浮点性能和整数性能均比之前所测试的MR100服务器略低,结合后面的内存带宽和延迟测试,我们判断这个成绩还是有些偏低的。
MR200_E7520 | ScienceMark Membench |
内存带宽 | 3294.38 MB/s |
L1 Cache Latency | |
32 Bytes Stride | 3 cycles/1.07ns |
L2 Cache Latency | |
4 Bytes Stride | 6 cycles/2.15 ns |
16 Bytes Stride | 12 cycles/4.30 ns |
64 Bytes Stride | 27 cycles/9.67 ns |
256 Bytes Stride | 26 cycles/9.31 ns |
512 Bytes Stride | 25 cycles/8.95 ns |
Memory Latency | |
4 Bytes Stride | 31 cycles/11.10 ns |
16 Bytes Stride | 97 cycles/34.73 ns |
64 Bytes Stride | 370 cycles/132.47 ns |
256 Bytes Stride | 367 cycles/131.40 ns |
512 Bytes Stride | 368 cycles/131.76 ns |
Algorithm Bandwidth | |
Compiler | 1551.93 MB/s |
REP MOVSD | 1577.49 MB/s |
ALU Reg Copy | 1304.60 MB/s |
MMX Reg Copy | 1586.76 MB/s |
MMX Reg 3dNow | - |
MMX Reg SSE | 2385.17 MB/s |
SSE PAlign | 3012.13 MB/s |
SSE PAlign SSE | 2917.91 MB/s |
SSE2 PAlign | 3011.78 MB/s |
SSE2 PAlign SSE | 2917.87 MB/s |
MMX Block 4kb | 3055.85 MB/s |
MMX Block 16kb | 3294.38 MB/s |
SSE Block 4kb | 3082.75 MB/s |
SSE Block 16kb | 3289.42 MB/s |
ScienceMark v2.0是一款用于测试系统特别是处理器在科学计算应用中的性能的软件,MemBenchmark是其中针对处理器缓存、系统内存而设计的功能模块,它可以测试系统内存带宽、L1 Cache延迟、L2 Cache延迟和系统内存延迟,另外还可以测试不同指令集的性能差异。
对比之前测试的其它相近配置的系统,可以发现同方MR200 2200服务器的内存子系统的表现有些异常,双通道内存带宽只有3.3GB/s左右,比正常水平低了大约14%。仔细观察ScienceMark的测试结果,读者会发现处理器L1、L2缓存的延迟都是正常的,但是内存延迟,特别是4字节/16字节/64字节测试,其延迟时间是正常水平的5-6倍。关于这个问题,我们联系同方公司之后,他们并没有发现问题的原因,最后他们又送来了另外一台基于E7320芯片组的同型号服务器。
MR200_E7520 | |||
---|---|---|---|
SPECfp rate_base2000 |
SPECint rate_base2000 | ||
开启线程数量 | 4 | 开启线程数量 | 4 |
168.wupwise | 46.3 | 164.gzip | 28.6 |
171.swim | 23.6 | 175.vpr | 23.1 |
172.mgrid | 21.5 | 176.gcc | 43 |
173.applu | 22.0 | 181.mcf | 22.2 |
177.mesa | 29.7 | 186.crafty | 25.4 |
178.galgel | 46.0 | 197.parser | 33.3 |
179.art | 35.0 | 252.eon | 41.0 |
183.equake | 24.3 | 253.perlbmk | 34.1 |
187.facerec | 35.8 | 254.gap | 37.8 |
188.ammp | 22.6 | 255.vortex | 54.6 |
189.lucas | 22.8 | 256.bzip2 | 28.7 |
191.fma3d | 26.7 | 300.twolf | 30.2 |
200.sixtrack | 16.1 | 总分 | 32.4 |
301.apsi | 27.4 | ||
总分 |
27.3 |
同样的型号的服务器,但是测试结果差距非常的。MR200_7320的浮点性能比MR200_7520高出了18.6%,而整数性能比MR200-E7520高出了10.2%。一般的情况下,两者的性能是非常相近的。
MR200_E7320 | ScienceMark Membench |
内存带宽 | 4022.57 MB/s |
L1 Cache Latency | |
32 Bytes Stride | 3 cycles/1.07ns |
L2 Cache Latency | |
4 Bytes Stride | 6 cycles/2.15 ns |
16 Bytes Stride | 13 cycles/4.64 ns |
64 Bytes Stride | 27 cycles/9.64 ns |
256 Bytes Stride | 26 cycles/9.29 ns |
512 Bytes Stride | 25 cycles/8.93 ns |
Memory Latency | |
4 Bytes Stride | 6 cycles/2.14 ns |
16 Bytes Stride | 15 cycles/5.36 ns |
64 Bytes Stride | 47 cycles/16.78 ns |
256 Bytes Stride | 353 cycles/126.06 ns |
512 Bytes Stride | 371 cycles/132.49 ns |
Algorithm Bandwidth | |
Compiler | 2059.63 MB/s |
REP MOVSD | 2099.7 MB/s |
ALU Reg Copy | 1818.97 MB/s |
MMX Reg Copy | 1943.32 MB/s |
MMX Reg 3dNow | - |
MMX Reg SSE | 3181.00 MB/s |
SSE PAlign | 3439.11 MB/s |
SSE PAlign SSE | 3367.64 MB/s |
SSE2 PAlign | 3441.6 MB/s |
SSE2 PAlign SSE | 3366.21 MB/s |
MMX Block 4kb | 3565.00 MB/s |
MMX Block 16kb | 4014.74 MB/s |
SSE Block 4kb | 3507.21 MB/s |
SSE Block 16kb | 4022.57 MB/s |
MR200_E7320的内存带宽也比MR200_E7520的内存带宽高出约22%,对比Memoery Latency测试结果,我们发现4 Bytes Stride、16 Bytes Stride和64 Bytes Stride测试结果差距明显。
通过研究基于E7520芯片组的其它型号Intel主板,我们发现在Intel主板的BIOS中一般会提供Hardware Prefetcher和Adjacent Cache Line Prefetch这两个选项,特别是后面的选项,大部分的服务器主板都不提供开关。在BIOS默认状态下,这两个选项是关闭的,而我们每测试一台服务器之前都会把BIOS恢复到默认状态。通过测试我们发现,当启用这两个选项的时候,特别是Adjacent Cache Line Prefetch选项时,内存带宽和延迟均正常,如果关闭这个选项则内存带宽会明显的降低,部分情况下内存延迟也会降低。我们推测方正MR200_E7520服务器内存方面的性能偏低同这个选项有关,并且将这个建议告知方正,但是方正并没有把MR200_E7520服务器发回来让我们验证,我们希望方正自己进行验证,不过他们并没有通知我们是否进行了验证,结果如何。因此,我们还是把我们测试到的所有结果发布出来,如果方正MR200服务器的用户发现自己的服务器性能不够理想,可以试着在这个方面查找一下原因。