人们在购买服务器时,往往希望CPU的速度越快越好,因为人们认为CPU越快,服务器的性能就越好,然而,事实并非如此简单。通过性能测试并对结果进行分析,我们发现速度仅是影响服务器性能的CPU诸因素中的一方面,还存在很多甚至更重要的CPU的其他因素影响服务器性能的发挥。我们将重点分析CPU诸因素中对服务器性能有较大影响的一些因素,以方便人们在选购IA 服务器时参考。
Intel CPU主要组成部件
构成CPU的主要部件有:CPU 内核(Pentium Processor Core)、一级缓存(L1 Cache)、二级缓存(L2 Cache)、BSB(Backside Bus)和FSB(Frontside Bus)。
CPU内核:是真正意义上的处理器,用于执行指令和处理数据,其计算能力与CPU的速度密切相关。
一级缓存:高速缓存器,为CPU提供其计算所需的指令和数据,与CPU内核同频工作。一般由指令缓存器和数据缓存器两个分离的大小相等的部分组成。目前大小分别为16KB。
二级缓存:高速缓存器,提供CPU计算所需的指令和数据。通常由三个部件组成:L2 Cache Controller、Cache SRAM和Cache tag RAM。分别用作控制器、存储器和缓存检索表。
BSB(Backside Bus):通常称之为后端总线。互连CPU内核和二级缓存的总线。主要负责向CPU提供L2 Cache所存储的指令和数据。BSB提供了66MHz、半速、全速三种速度。BSB速度决定了CPU访问Cache的速度。由于CPU所需的指令和数据主要来自于L2 Cache,所以BSB速度对系统性能有非常重要的影响。
FSB(Frontside Bus):即通常所说的前端总线。互连CPU和主板芯片组的总线,一般用于互连CPU和内存控制器。FSB的速度即是通常所说的外频。FSB速度的高低影响CPU对主内存的存取。目前主流的外频为133MHz,服务器部分(四路至强处理器的服务器)仍采用100MHz。
Intel Pentium III CPU介绍
目前,PIII CPU有带“E”和带“B”的两种,那么带E和不带E,带B和不带B的CPU有何区别?
Intel公司推出了两代Pentium III 处理器。第一代是:Pentium III(开发代码Katmai)和Pentium III Xeon CPU(开发代码Tanner);第二代是支持133MHz外频或具有ATC技术的Pentium III(开发代码Coppermine)和Pentium III Xeon CPU(开发代码Cascades)。为了区分,在命名PIII CPU时用E代表采用ATC技术的CPU;用B代表支持133MHz外频的CPU;若两者都具备则该CPU称之为EB型。
对于外频为133MHz的CPU大家较易理解,无非是提高CPU访问内存的带宽。那么ATC指的是什么呢?为讲清楚ATC,我们不妨先了解第一代Pentium III CPU有何特点?
第一代PIII CPU与PII CPU相比,相同点是仍然采用0.25微米的加工工艺,L2 Cache芯片和CPU芯片是分离的,连接它们的数据带宽是64位。不同点是新增8个128位寄存器和70条指令(称之为SIMD指令集),同时提高了CPU的工作频率。第二代PIII CPU采用了0.18微米的加工工艺,与第一代相比,其CPU内核芯片面积减少了30%。为此Intel将内核芯片和L2 Cache芯片封装在同一芯片内,于是用于连接CPU内核和L2 Cache的BSB非常短,更利于解决高速传输中的电气噪音等干扰问题,提供了以前仅在P-Pro和Xeon CPU才提供的全速通信,大大提高处理器访问L2 Cache的速度。
另一方面,在BSB方面有一重大突破的是,BSB的数据宽度由以前的64位上升为256位。这一提高对系统,尤其是CPU有何影响呢?
为此先向大家引入一新名词:Cache Line。
为了改进性能,Intel处理器访问内存时采用一种称之为Cache Line的技术。每次CPU访问内存时,以Cache Line为单位,请求一个或多个Cache Line。对于P5和P6类CPU来说,一个Cache Line由32字节的数据或指令组成,也就是一个Cache Line共256位,当CPU向L2 Cache请求1个Cache Line时,那么将从BSB上向CPU传输256位数据或指令,如果BSB为64位宽,那么至少要分4次传输,如果每次传输能在1个Clock内完成,则传完一个Cache Line至少需要4个Clock;若BSB数据宽度为256位,则只需在1个Clock内完成。
显然第二代PIII CPU即Coppermine和Cascades大大减少了访问L2 Cache的时延,进而提高了系统性能。Intel将此种技术(256位的BSB总线技术)称为Advanced Transfer Cache简称ATC。
Intel不仅改进了BSB总线技术,而且在L2 Cache内部性能上也有重大改进。
Coppermine和Cascades的L2 Cache将第一代L2 Cache的4路集关联(4-way set associative)提高到8路集关联。缓存关联度的提高不仅减少了检索存储在L2 Cache里内存地址的查询时间,而且提高了L2 Cache的命中率。 总而言之,Coppermine和Cascades与第一代PIII CPU相比,最大的改进是采用了ATC技术,以及提高了L2 Cache的关联度。
对于Coppermine和Cascades来说,它们都采用相同的处理器和相同的全速L2 Cache技术。据测试,一个256KB L2 Coppermine与256KB L2 Cascades有相同的性能。然而Cascades (即目前的PIII Xeon)处理器具有以下特点:
能访问最多达64GB的内存,而Coppermine仅能访问4GB内存。
支持2MB的L2 Cache,而Coppermine仅有256KB的L2 Cache。
在一条FSB上可以最多支持4颗处理器,而Coppermine仅能支持2颗。
可见,PIII Xeon处理器比PIII CPU在性能上有了很大的提高,这也是为什么采用至强处理器的服务器的价格要高于采用普通处理器的服务器。
CPU速度、CPU数量、L2 Cache与服务器性能
CPU速度与服务器性能 CPU速度与性能有这样一种关系: 若CPU1主频为M1,CPU2主频为M2,CPU1和CPU2采用的是相同技术,M2 >M1,且M2-M1< 200MHz, 则配置CPU2较配置CPU1性能提升(M2-M1)/ M1×50%。通常称之为:CPU的50%定律。一般地,两CPU主频越接近,越符合此50%定律。
CPU数量与服务器性能 SMP: 即Symmetric Multiprocessing 对称多处理。指的是系统中的多个CPU对称地访问系统的所有硬件资源,譬如内存、I/O总线和中断。目前只有Xeon(至强)系列CPU才支持大于2路的SMP系统。Pentium II和Pentium III只支持2路SMP。
增加服务器的CPU时究竟对性能有何影响?我们通过一个实例来说明:
有一款可支持8路SMP Xeon CPU的高端服务器,假定系统的内存足够大,网络速度足够快,硬盘速度足够快。也就是增加CPU时系统不存在瓶颈。从一颗Xeon CPU扩展到2颗Xeon CPU时性能提升70%;增加到4颗Xeon CPU时,性能提升200%;当CPU扩展到8颗时,系统性能是1颗CPU的5倍,即提升了400%。
一般说来,CPU的扩展性具有如下特点:对于标准的不带ATC特点的Xeon CPU,如Tanner,扩展CPU所带来的性能增长情况如下:
1 CPU=1;2 CPU=1.7;4 CPU=3.0;8 CPU=5.0。
对于目前最新的具有ATC技术的Cascades PIII Xeon CPU来说,其扩展性能如下:
1 CPU=1;2 CPU=1.6;3 CPU=1.9;4 CPU=2.0。
L2 Cache与服务器性能 随着CPU数量的增加,L2 Cache大小对系统性能的影响也越来越明显。譬如对于一个4路的SMP服务器而言,当只安装一个CPU时,对内存访问几乎没有竞争,因此若L2 Cache不能满足CPU的需求时,内存可以在CPU等待之前做出响应,所以CPU的运行状况与L2 Cache的命中率几乎无关。
另一方面,若安装了4颗Xeon CPU,那么访问内存的队列、访问内存的时间将明显增加,从而增加了CPU的潜在等待时间,在这种情况下,L2 Cache的高命中率将节省大量的时间,显著提高处理器的性能。总的说来,CPU越多,越大的L2 Cache给系统带来的性能越明显:
对于1或2个CPU而言,L2 Cache大小增加一倍,系统性能提高3~5%;
对于3或4个CPU而言,L2 Cache大小增加一倍,系统性能提高6~12%;
对于8个CPU而言,L2 Cache大小增加一倍,系统性能提高15~20%;
最后给大家提供一个参考建议,这是我们在研发方正圆明服务器时根据测试结果总结出来的,有关不同数量、不同主频、不同型号CPU配置的服务器性能对比情况,供大家参考:
目前方正圆明系列服务器已全面采用第二代Pentium III CPU。部门级服务器圆明2200,标配支持133外频和ATC缓存技术的PIII Xeon 866MHz CPU,最大可达到2颗。圆明1700、1600R标配支持ATC 缓存技术的PIII 700 MHz CPU,最大可支持2颗CPU。圆明4100支持4颗PIII Xeon CPU,内存最大可支持16GB ECC SDRAM,目前标配2颗或1颗700MHz,二级缓存1MB,标配512MB内存,充分根据本文所分析的性能增长情况配置,通过第三方性能测试实验室测试圆明4100的Serverbench结果也高达1400TPS以上。