前言:了解更多的FB-DIMM的特性
【IT168评测中心】在IT168评测中心于2006年07月14日发布的《FB-DIMM内存性能初探》一文中,介绍了FB-DIMM内存技术的优势、技术细节和物理规格,还展示了两家重要的内存厂商三星和英飞凌生产的FB-DIMM内存模组,并且测试了它们在不同的芯片组(5000V和5000P)上的性能表现。
随着我们测试了多款采用了FB-DIMM内存的服务器系统,我们对于这项新的内存应用技术有了更多的认识和了解,因此我们也做了更多、更深入的测试,本文将会通过这些数据帮助用户了解新的服务器系统在内存上的特性。
测试平台和测试方法
华硕电脑专门为我们这次的测试提供了华硕DSBF-D/SAS服务器主板(点击这里查看该主板评测)作为测试运行平台,这款主板配置了8条FB-DIMM插槽,最高可支持FB-DIMM DDR2 667内存。
![]() |
主板8条FB-DIMM插槽分属两个分支(Branch),每个分支可以配置为双通道,当同时使用两个分支的时候,可以启用Interleave功能。我们测试分为如下情况进行:
| 内存通道 | 内存容量 | 分支配置模式 | |
| 4CH-4GB-In | 4通道 | 1GB x 4 | Interleave |
| 4CH-4GB-Se | 4通道 | 1GB x 4 | Sequence |
| 2CH-4GB | 2通道 | 1GB x 4 | - |
| 2CH-2GB | 2通道 | 1GB x 2 | - |
通过这些测试,我们可以了解通道数量、内存容量、分支模式对于整个系统的性能影响。
![]() |
| FB-DIMM内存:Ramaxel 1GB 2Rx8 PC2-4200 444 |
|
华硕DSBF-D/SAS服务器主板测试平台配置 | |
|
主板 |
ASUS DSBF-D/SAS |
|
芯片组 |
Intel 5000P |
|
驱动程序 |
INF 8.1.1006 |
|
处理器 |
Intel Xeon 5120 x2 |
|
主频 |
1.86GHz |
|
FSB |
1066MHz |
|
L2容量 |
4MB(共享) |
|
处理器设置 |
XDbit Disable |
|
磁盘控制器 |
Adaptec ASR-2130SLP SCSI RAID卡 |
|
硬盘 |
Seagate Cheetah 10k.7 ST373207LW x 3 |
|
驱动程序 |
5.1.0.9114(03/27/2006) |
|
磁盘设置 |
三块硬盘组建为RAID 5模式,条带大小为64KB,磁盘分为两个分区,均为NTFS格式,系统默认簇,主分区20GB,其它分为扩展分区,共享文件夹、磁盘测试均在格式化后的扩展分区上进行 |
|
操作系统 |
Microsoft Windows Server2003,5.02.3790,SP1 |
|
网卡 |
Intel PRO/1000 EB Network Connection with I/O Acceleration |
|
驱动程序 |
9.3.39.0(4/3/2006) |
我们在上述配置的服务器上分别安装了Microsoft Windows 2003 SP1企业版,正确安装了各个硬件的驱动程序,确保服务器工作在非常好的的状态。
我们会有选择性的使用如下所列的评测项目:
-
SPECCPU2000 v1.2 SPECint
SPEC是标准性能评估公司(Standard Performance Evaluation Corporation)的简称。SPEC是由计算机厂商、系统集成商、大学、研究机构、咨询等多家公司组成的非营利性组织,这个组织的目标是建立、维护一套用于评估计算机系统的标准。
SPEC CPU2000是SPEC组织推出的一套CPU子系统评估软件,它包括CINT2000和CFP2000两个子项目,前者用于测量和对比整数性能,而后者则用于测量和对比浮点性能。计算系统中的处理器、内存和编译器都会影响最终的测试性能,而I/O(磁盘)、网络、操作系统和图形子系统对于SPEC CPU2000的影响非常的小。
SPECfp测试过程中同时执行多个实例(instance),测量系统执行计算密集型浮点操作的能力,比如CAD/CAM、DCC以及科学计算等方面应用可以参考这个结果。SPECint测试过程中同时执行多个实例(instances),然后测试系统同时执行多个计算密集型整数操作的能力,可以很好的反映诸如数据库服务器、电子邮件服务器和Web服务器等基于整数应用的多处理器系统的性能。
我们在被测服务器中安装了Intel C++ 8.1 Compiler、Intel Fortran 8.1 Compiler这两款SPEC CPU2000必需的编译器,另外安装了Microsoft Visual Studio 2003.net提供必要的库文件。按照SPEC的要求我们根据自己的情况编辑了新的Config文件,可以满足Base测试。然后我们根据被测系统实际可同时处理的线程数量,设定用户数量,分别运行SPEC base和SPEC rate base测试的结果(其中SPEC base代表系统执行某个任务的速度,而SPEC base rate测试代表系统可以同时处理任务的能力)。
-
ScienceMark v2.0 Membench
ScienceMark v2.0是一款用于测试系统特别是处理器在科学计算应用中的性能的软件,MemBenchmark是其中针对处理器缓存、系统内存而设计的功能模块,它可以测试系统内存带宽、L1 Cache延迟、L2 Cache延迟和系统内存延迟,另外还可以测试不同指令集的性能差异。
-
SiSoftware.Sandra.Enterprise.v2007.5.10.98
SiSoftware Sandra是一款可运行在32bit和64bit Windows操作系统上的分析软件,这款软件可以对于系统进行方便、快捷的基准测试,还可以用于查看系统的软件、硬件等信息。今年该软件推出了2007版,该版本新增了4项基准测试,包括Power Management Efficiency、Memory Latency、Physical Disks和CD-ROM and DVD这四个项目。另外,它还对于原有的几个基准测试模块进行升级,比如在Arithmetic benchmarks中增加了对SSE3 & SSE4 SSE4的支持,在Multi-Media benchmark中增加了对于SSE4的支持,另外还升级了File System benchmark和Removable Storage benchmark两个子项目。对于新的硬件的支持当然也是该软件每次升级的重要内容之一。SiSoftware Sandra所有的基准测试都针对SMP和SMT进行了优化,最高可支持32/64路平台,这也是我们选择这款软件的原因之一。
-
WebBench v5.0
WebBench是针对服务器作为Web Server时的性能进行测试,我们在被测服务器上安装了IIS6.0组件,以提供测试所需的Web服务。在测试中我们开启了网络实验室中的56台客户端,分别使用了WebBench 5.0内置的动态CGI以及静态页面脚本对服务器进行了测试。
静态测试是由客户端读取预先放置在服务器Web Server下的Web页面(wbtree),这项测试主要考察的是服务器磁盘系统以及网络连接性能。我们使用了实验室中的56台客户端,配合Static_mt.tst多线程静态脚本测试向被测服务器发送请求。
动态测试偏重于对服务器CPU子系统的性能测试,它对于Web服务器提供了足够的负载。我们将一个C语言编写的CGI源文件Simcigi.c编译为Simcgi.exe,并将其作为动态测试中的CGI脚本。在测试过程中,每台安装了WebBench客户端软件的PC,会在300秒的时间内持续向服务器发送CGI请求,而控制台会纪录并汇总服务器所响应CGI请求的数据。CGI测试的成绩高低,主要取决于服务器处理器子系统性能的优劣。处理器子系统包括CPU、内存以及内存控制器,CPU频率、缓存以及内存容量大小和内存带宽,都会影响该项成绩。
SiSoftware.Sandra.Enterprise.v2007
|
SiSoftware.Sandra.Enterprise.v2007.5.10.98 | ||||
| 4CH-4GB-In | 4CH-4GB-Se | 2CH-4GB | 2CH-2GB | |
| Processor Arithmetic | ||||
| Dhrystone ALU(MIPS) | 34567 | 34569 | 34576 | 34571 |
| Whetstone iSSE3(MFLOPS) | 23112 | 23109 | 23109 | 23113 |
| Processor Multi-Media | ||||
| Integer x8 iSSE4(it/s) | 205123 | 205155 | 205129 | 205113 |
| Floating-Point x4 iSSE2(it/s) | 111132 | 111127 | 111141 | 111118 |
我们利用SiSoftware.Sandra.Enterprise.v2007中的Processor Arithmetic和Processor Multi-Media测试模块对于4个采用了不同FBDIMM配置的系统进行了测试,测试结果显示内存配置的差异对于整数性能和浮点运算的性能影响极小。
|
SiSoftware.Sandra.Enterprise.v2007.5.10.98 | ||||
| Memory Bandwidth (MB/s) | ||||
| 4CH-4GB-In | 4CH-4GB-Se | 2CH-4GB | 2CH-2GB | |
| RAM Int Buff iSSE2(MB/s) | 4152 | 3573 | 3957 | 3575 |
| RAM Float Buff iSSE2(MB/s) | 4158 | 3575 | 3966 | 3574 |
| Memory Latency | ||||
| Random Access (ns) | ||||
| Speed Factor | 83.2 | 83.4 | 86.6 | 83.3 |
| 1kB | 1.6 | 1.6 | 1.6 | 1.6 |
| 4kB | 1.6 | 1.6 | 1.6 | 1.6 |
| 16kB | 1.6 | 1.6 | 1.6 | 1.6 |
| 64kB | 7.6 | 7.6 | 7.6 | 7.6 |
| 256kB | 8.4 | 8.4 | 8.4 | 8.4 |
| 1MB | 8.6 | 8.6 | 8.6 | 8.6 |
| 4MB | 14.4 | 14.8 | 14.4 | 14.6 |
| 16MB | 118.5 | 118.8 | 120.2 | 118.9 |
| 64MB | 134.9 | 135.0 | 140.0 | 135.0 |
| Linear Access (ns) | ||||
| Speed Factor | 15.8 | 15.8 | 16.0 | 15.8 |
| 1kB | 1.6 | 1.6 | 1.6 | 1.6 |
| 4kB | 1.6 | 1.6 | 1.6 | 1.6 |
| 16kB | 1.6 | 1.6 | 1.6 | 1.6 |
| 64kB | 6.6 | 6.6 | 6.6 | 6.6 |
| 256kB | 6.6 | 6.6 | 6.6 | 6.6 |
| 1MB | 6.6 | 6.6 | 6.6 | 6.6 |
| 4MB | 7.3 | 7.4 | 7.4 | 7.4 |
| 16MB | 25.5 | 25.4 | 25.8 | 25.4 |
| 64MB | 25.6 | 25.5 | 25.9 | 25.5 |
| Cache and Memory (MB/s) | ||||
| Combined Index | 35179 | 33156 | 34824 | 32584 |
| 2KB | 169224 | 173717 | 170495 | 173453 |
| 4KB | 212754 | 212736 | 212713 | 212457 |
| 8KB | 226932 | 226418 | 226373 | 226080 |
| 16KB | 236478 | 236556 | 236495 | 236272 |
| 32KB | 234714 | 234686 | 234668 | 234312 |
| 64KB | 222290 | 222308 | 222282 | 221961 |
| 128KB | 173958 | 173963 | 173941 | 173685 |
| 256KB | 69226 | 69217 | 69225 | 69193 |
| 512KB | 68656 | 68636 | 68654 | 68594 |
| 1MB | 65802 | 65745 | 65798 | 65689 |
| 4MB | 54043 | 53848 | 54030 | 53742 |
| 16MB | 7008 | 6177 | 6949 | 5851 |
| 64MB | 4703 | 4016 | 4574 | 3846 |
| 256MB | 4430 | 3781 | 4297 | 3621 |
| 1GB | 3544 | 3016 | 3437 | 2899 |
Memory Bandwidth测试模块显示采用了4通道4GB内存并且开启了Interleave模式的系统内存带宽最高,达到了4.16GB/s左右。其次是采用了2通道4GB的系统,其内存带宽也达到了3.96GB/s。而同样是4通道4GB内存但是采用了Sequence模式的内存带宽有了明显的下降,只有3.57GB/s左右。2通道2GB系统的内存带宽也在3.57GB/s左右,说明这项测试对于内存容量也是比较敏感的。
Memory Latency测试包括不同容量的数据块的测试,一般的认为小于处理器缓存容量的数据块测试所得到的结果更多的收到处理器缓存性能的影响。而我们在测试过程中测试平台除了内存之外均相同,因此我们主要关注大于4MB以上的测试结果。测试结果显示,2通道4GB内存子系统延迟略长。
Cache and Memory测试结果也可以参照以上的方法分析,我们只要分析大于4MB的数据块的测试结果。其所表现出来的趋势同Memory Bandwidth测试结果一致。4CH-4GB-In最优,2CH-4GB次之。4CH-4GB-Se、2CH-2GB同前两者有明显的性能差异,而这两者相比2CH-2GB的性能更低一些。
ScienceMark v2.0 Membench
|
ScienceMark Membench | ||||
| 4CH-4GB-In | 4CH-4GB-Se | 2CH-4GB | 2CH-2GB | |
|
内存带宽(MB/s) |
2918.25 | 2898.23 | 2912.04 | 2898.40 |
|
L1 Cache Latency (ns) | ||||
|
32 Bytes Stride |
1.61 | 1.61 | 1.61 | 1.61 |
|
L2 Cache Latency(ns) | ||||
|
4 Bytes Stride |
1.61 | 1.61 | 1.61 | 1.61 |
|
16 Bytes Stride |
2.14 | 2.14 | 2.14 | 2.14 |
|
64 Bytes Stride |
5.89 | 5.89 | 5.89 | 5.89 |
|
256 Bytes Stride |
6.43 | 6.43 | 6.43 | 6.43 |
|
512 Bytes Stride |
6.43 | 6.43 | 6.43 | 6.43 |
|
Memory Latency(ns) | ||||
|
4 Bytes Stride |
1.61 | 1.61 | 1.61 | 1.61 |
|
16 Bytes Stride |
2.14 | 2.14 | 2.14 | 2.14 |
|
64 Bytes Stride |
6.96 | 6.43 | 6.43 | 6.43 |
|
256 Bytes Stride |
7.50 | 7.50 | 6.96 | 6.96 |
|
512 Bytes Stride |
8.04 | 8.04 | 7.50 | 8.04 |
|
Algorithm Bandwidth(MB/s) | ||||
|
Compiler |
2068.71 | 2059.99 | 2053.60 | 2058.30 |
|
REP MOVSD |
2086.70 | 2076.65 | 2082.37 | 2078.38 |
|
ALU Reg Copy |
2019.78 | 1997.56 | 2010.56 | 1997.12 |
|
MMX Reg Copy |
2045.38 | 2020.17 | 2039.44 | 2021.46 |
|
MMX Reg 3dNow |
- | - | - | - |
|
MMX Reg SSE |
2906.74 | 2863.19 | 2899.01 | 2862.47 |
|
SSE PAlign |
2897.37 | 2877.00 | 2888.64 | 2876.95 |
|
SSE PAlign SSE |
2918.25 | 2897.09 | 2912.04 | 2894.10 |
|
SSE2 PAlign |
2888.73 | 2865.60 | 2875.98 | 2864.78 |
|
SSE2 PAlign SSE |
2917.67 | 2898.23 | 2910.46 | 2898.40 |
|
MMX Block 4kb |
2460.69 | 2423.07 | 2434.24 | 2423.98 |
|
MMX Block 16kb |
2663.69 | 2638.66 | 2652.70 | 2638.24 |
|
SSE Block 4kb |
2452.03 | 2433.54 | 2438.05 | 2423.73 |
|
SSE Block 16kb |
2668.89 | 2645.91 | 2650.89 | 2645.23 |
ScienceMark v2.0 Membench的测试结果同Sisoftware Sandra 2007 Memory Bandwidth的测试结果所显示出来的趋势是相同的。4通道4GB内存并且开启了Interleave模式的系统(4CH-4GB-In)和2通道4GB内存的系统(2CH-4GB)的性能相近。4通道4GB内存采用Sequence模式的系统(4CH-4GB-Se)和2通道2GB内存的系统(2CH-2GB)性能相近。
Algorithm Bandwidth测试部分模拟了采用了不同指令集的应用的性能,其中的部分测试结果也能显示同上的趋势。但是部分测试因为所使用的数据块较小,比如MMX Block 4kb/16kb、SSE Block 4kb/16kb的测试结果都无法显示内存子系统之间的性能差异。
SPEC CPU2000 v1.2 SPECint
| SPECint rate_base2000 | ||||
|---|---|---|---|---|
| 4CH-4GB-In | 4CH-4GB-Se | 2CH-4GB | 2CH-2GB | |
| 开启线程数量 | 4 | 4 | 4 | 4 |
| 164.gzip | 52.2 | 52.1 | 52.2 | 52.1 |
| 175.vpr | 50.6 | 50.4 | 50.4 | 49.4 |
| 176.gcc | 85.0 | 85.0 | 84.6 | 84.7 |
| 181.mcf | 45.5 | 45.2 | 44.5 | 39.4 |
| 186.crafty | 55.8 | 55.8 | 55.8 | 55.8 |
| 197.parser | 62.4 | 62.7 | 63.4 | 63.1 |
| 252.eon | 85.7 | 85.7 | 85.7 | 85.6 |
| 253.perlbmk | 86.3 | 86.5 | 86.0 | 86.2 |
| 254.gap | 69.0 | 68.1 | 66.3 | 61.9 |
| 255.vortex | 115.0 | 115.0 | 115.0 | 114.0 |
| 256.bzip2 | 52.9 | 52.4 | 52.3 | 52.5 |
| 300.twolf | 88.1 | 88.2 | 88.1 | 88.4 |
| 总分 | 68.0 | 67.8 | 67.6 | 66.4 |
由于时间的关系,我们无法进行太多的实际应用的测试,因此主要通过SPEC CPU2000 SPECint测试来考察不同内存配置的性能差异。在这项测试中包括11个C程序和1个C++程序(252.eon),它们分别代表数据压缩(164、256)、电路布线(175)、C编译器(176)、 最低成本网络流解算机(181)、象棋模拟程序(186)、自然语言处理(197)、光线追踪(252)、Perl应用(253)、计算机群论(254)、面向对象的数据库应用(255)等应用。
在大部分的子项目中,不同配置的内存子系统对于系统的影响并不大,除了最低成本网络流解算机(181)和Perl应用(253)——在这两项测试中,2CH-2GB的性能差异较大,我们推测此时主要是内存容量不同所导致的性能差异。
WebBench v5.0
![]() |
在Webbench测试中,我们启用了网络实验室中的60个终端,每4个一组依次增加向被测服务器发送动态CGI请求。这4个采用不同内存配置的平台的测试峰值均出现在60个客户端同时接入的时候。测试结果显示,4CH-4GB-In的性能较为明显的领先于其它的3个平台,最大差异为2%。
IT168评测中心观点
现代服务器均应用了分层存储的设计思想,处理器所需要的数据九成以上都可以在其整合的高速缓存中找到,而内存子系统则是确保处理器性能的最后一道保障——因为如果一旦处理器所需要的数据需要从磁盘等外部存储设备调用的话,系统的性能将会严重下降。
FB-DIMM内存技术是Intel Bensley平台主要的革新之一,了解这个新的内存子系统的特性可以帮助我们更好理解和使用基于Bensley平台的服务器。我们的测试结果显示,4通道配置和2通道配置相比,带宽的最大差异是10%——而理论上4通道配置可提供16.8GB/s(FB-DIMM DDR2 533),2通道配置可提供8.4GB/s(FB-DIMM DDR2 533)的内存带宽。至少说明,我们目前的所有测试手段无法很好的体现Intel 5000P芯片组所提供的4通道内存子系统的带宽优势。
同是4通道配置的情况下,不同的配置对于性能也有一定的影响,我们主要考察了Interleave和Sequence配置对于性能的影响。测试结果显示,在4通道配置的情况下,开启Interleave功能之后的内存带宽比开启Sequence功能之后高出16%左右。我们的测试结果显示,如果是4通道配置,如果不开启Interleave,其性能甚至会低于双通道2GB配置。
我们的大部分测试项目显示,容量为2GB的双通道配置内存子系统的性能明显的低于容量为4GB的内存子系统(Sequence除外),其内存带宽大约落后领先者大约16%,在最低成本网络流解算机(181)和Perl应用(253)测试中性能降幅分别为15.5%和11.5%。在常用的Web服务器应用中,其性能降幅也在2%左右。
结合处理器性能测试结果来看,我们会发现系统的计算性能受到内存配置的影响远没有内存带宽所受到的影响大,这主要得益于处理器缓存的良好工作机制。比如,Sisoftware Sandra 2007的内存带宽测试最大差异在16%左右,而处理器性能几乎没有差异。SPECint的测试结果则显示,部分应用会明显受到内存容量的影响,此时缓存也无法有效的弥补内存的差异。
