论文部分内容阅读
人们在购买服务器时,往往希望CPU的速度越快越好,因为人们认为CPU越快,服务器的性能就越好,然而,事实并非如此简单。通过性能测试并对结果进行分析,我们发现速度仅是影响服务器性能的CPU诸因素中的一方面,还存在很多甚至更重要的CPU的其他因素影响服务器性能的发挥。以下将重点分析CPU诸因素中对服务器性能有较大影响的一些因素,以方便人们在选购IA服务器时参考。
在具体分析之前,我们先来看一张表,此表提供了Intel公司Pentium系列CPU的一些重要参数,以有利于下文分析。
Intel CPU主要组成部件
以Intel公司的Pentium II CPU为例,构成CPU的主要部件有:
1.CPU内核(Pentium Processor Core):是真正意义上的处理器,用于执行指令和处理数据,其计算能力与CPU的速度密切相关。
2.一级缓存(L1 Cache):高速缓存器,为CPU提供其计算所需的指令和数据,与CPU内核同频工作。一般由指令缓存器和数据缓存器两个分离的大小相等的部分组成。目前大小分别为16KB。
3.二级缓存(L2 Cache):高速缓存器,提供CPU计算所需的指令和数据。通常由三个部件组成:L2 Cache Controller,Cache SRAM,Cache tag RAM。分别用作控制器,存储器和缓存检索表。
4.BSB(Backside Bus):通常称之为后端总线。互连CPU内核和二级缓存的总线。主要负责向CPU提供L2 Cache所存储的指令和数据。从表上可以看出,BSB提供了66MHz,半速,全速三种速度。半速指BSB工作频率是CPU主频的一半;全速指BSB工作频率与CPU主频相同。BSB速度决定了CPU访问Cache的速度。由于CPU所需的指令和数据主要来自于L2 Cache,所以BSB速度对系统性能有非常重要的影响。据测试,一个200MHz的Pentium Pro系统性能要优于一个PII 233的性能,主要原因在于前者的BSB速度为200MHz,而后者仅为116MHz。
5.FSB(Frontside Bus):即通常所说的前端总线。互连CPU和主板芯片组的总线,一般用于互连CPU和内存控制器。FSB的速度即是通常所说的外频。FSB速度的高低影响CPU对主内存的存取。目前主流的外频为133MHz,服务器部分(四路至强处理器的服务器)仍采用100 MHz。
Intel Pentium III CPU介绍
如果您对CPU比较关注的话,会发现目前PIII CPU有带“E”和带“B”的两种,E代表采用ATC技术的CPU;B代表支持133MHz外频的CPU;若两者都具备则该CPU称之为EB型。对于外频为133大家较易理解,无非是提高CPU访问内存的带宽。那么ATC指的是什么呢?
由于第二代PIII CPU采用了0.18微米的加工工艺,与第一代相比其CPU内核芯片面积减少了30%。为此Intel将内核芯片和L2 Cache芯片封装在同一芯片内,于是用于连接CPU内核和L2 Cache的BSB可做得非常短,更利于解决高速传输中的电气噪音等干扰问题,提供了以前仅在P-Pro和Xeon CPU才提供的全速通信,大大提高处理器访问L2 Cache的速度。另一方面,在BSB方面有一重大突破是BSB的数据宽度由以前的64位上升为256位。这一提高对系统尤其是CPU有何影响呢?
为了改进性能,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 tick内完成,则传完一个Cache Line至少需要4个Clock tick;若BSB数据宽度为256位,则只需在1个Clock tick内完成。
显然第二代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)具有以下特点:
(1)能访问最多达64GB的内存,而Coppermine仅能访问4GB内存
(2)支持2MB的L2 Cache,而Coppermine仅有256KB的L2 Cache。
(3)在一条FSB上可以最多支持4颗处理器,而Coppermine仅能支持2颗。
可见,PIII Xeon处理器比PIII CPU在性能上有了很大的提高,这也是为什么采用至强处理器的服务器的价格要高于采用普通处理器的服务器。象方正电脑的圆明4100服务器的价格就高于圆明1700服务器几万元。
CPU速度、CPU数量、L2 Cache与服务器性能
1.CPU速度与服务器性能
CPU速度对服务器的性能有非常重要的影响。许多人希望通过升级CPU的时钟频率来提高系统性能。那么究竟能提高多少呢?一般可按如下公式计算:
若CPU1主频为M1,CPU2主频为M2,CPU1和CPU2采用的是相同技术,M2 > M1,且M2 - M1 < 200MHz,则配置CPU2较配置CPU1性能提升(M2 - M1)/ M1×50%。这通常称之为CPU的50%定律。一般地两CPU主频越接近,越符合此50%定律。
2.CPU数量与服务器性能
当前IA服务器采用多CPU系统的越来越普遍,而这其中更多的是支持SMP,即对称多处理。SMP使系统中的多个CPU可对称地访问系统的所有硬件资源譬如内存、I/O总线和中断,由于每一个CPU所看到的是同一硬件资源。所以SMP硬件的扩展性直接关系到多个CPU共享硬件资源的效率。
目前只有Xeon(至强)系列CPU才支持大于2路的SMP系统。Pentium II和Pentium III只支持2路SMP。
SMP与服务器的应用有直接关系,下图是不同服务器应用类型对CPU数量的敏感度。
从上图可以发现对文件或打印服务器而言,增加一个CPU并不能明显地增加性能,CPU由1增加到2个时性能有稍许提高,但继续增加时性能反而降低。对于数据库或其他应用服务器而言,系统性能与CPU的数量相关性较大,从图上可以看出增加1到3个CPU系统的处理能力有明显提高。
增加服务器的CPU时究竟对性能有何影响?假设一款可支持8路SMP Xeon CPU的高端服务器,系统的内存足够大,网络速度和硬盘速度足够快。也就是增加CPU时系统不存在瓶颈。CPU数量与性能的关系如图2。
一般说来,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
从上面所显示的扩展情况来看,Cascades的扩展性能似乎没有Non-ATC的CPU如Tanner好。从目前的测试情况来看上述结果是真实的。然而这并不表明标准的Xeon CPU就比Cascades的扩展性能好。Cascades所产生的扩展问题主要有以下两方面原因:
(1)单Cascades CPU的起点性能高,相对说来扩展时增加的绝对值相对较小。
(2)当CPU数量增加时,内存所产生的瓶颈影响越来越大。
采用ATC技术的Cascades CPU性能发挥更依赖于高速内存,而目前除了可以采用内存多路交叉存取访问技术以提高内存性能之外,用户自己是不能控制内存带宽的。所以随着CPU的数量增加,内存产生的瓶颈也就越来越明显。只有依靠更新的内存控制器技术和内存技术,提供更快的内存才能满足下一代处理器的需求。
3.L2 Cache与服务器性能
处理器性能是一复杂的话题,因为CPU的性能更多地被系统结构、操作系统、应用和工作负荷等因素所影响。一般说来服务器需要随时处理来自不同用户的请求。所以CPU处理的数据更具突发性和随机性,而不象桌面系统具有连续性。所以CPU所需要的指令和数据主要是由L2 Cache提供。因此对于一台服务器来说L2 Cache的大小对系统性能是有重要影响的。我们曾经测试过方正圆明3000N服务器,发现一个2MB L2 Cache的450MHz Xeon CPU较同频的512KB L2Cache有约10%提升。
随着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颗。圆明4100支持4颗PIII Xeon CPU,内存最大可支持16GB ECC SDRAM,目前标配为2颗或1颗700MHz CPU、1MB二级缓存、512MB内存,充分根据本文所分析的性能增长情况配置,通过第三方性能测试实验室测试,圆明4100的Serverbench结果也高达1400TPS以上。显示了圆明4100强大的客户请求处理能力,可以为用户的数据库、数据仓库或电子商务应用提供最佳性能。
在具体分析之前,我们先来看一张表,此表提供了Intel公司Pentium系列CPU的一些重要参数,以有利于下文分析。
Intel CPU主要组成部件
以Intel公司的Pentium II CPU为例,构成CPU的主要部件有:
1.CPU内核(Pentium Processor Core):是真正意义上的处理器,用于执行指令和处理数据,其计算能力与CPU的速度密切相关。
2.一级缓存(L1 Cache):高速缓存器,为CPU提供其计算所需的指令和数据,与CPU内核同频工作。一般由指令缓存器和数据缓存器两个分离的大小相等的部分组成。目前大小分别为16KB。
3.二级缓存(L2 Cache):高速缓存器,提供CPU计算所需的指令和数据。通常由三个部件组成:L2 Cache Controller,Cache SRAM,Cache tag RAM。分别用作控制器,存储器和缓存检索表。
4.BSB(Backside Bus):通常称之为后端总线。互连CPU内核和二级缓存的总线。主要负责向CPU提供L2 Cache所存储的指令和数据。从表上可以看出,BSB提供了66MHz,半速,全速三种速度。半速指BSB工作频率是CPU主频的一半;全速指BSB工作频率与CPU主频相同。BSB速度决定了CPU访问Cache的速度。由于CPU所需的指令和数据主要来自于L2 Cache,所以BSB速度对系统性能有非常重要的影响。据测试,一个200MHz的Pentium Pro系统性能要优于一个PII 233的性能,主要原因在于前者的BSB速度为200MHz,而后者仅为116MHz。
5.FSB(Frontside Bus):即通常所说的前端总线。互连CPU和主板芯片组的总线,一般用于互连CPU和内存控制器。FSB的速度即是通常所说的外频。FSB速度的高低影响CPU对主内存的存取。目前主流的外频为133MHz,服务器部分(四路至强处理器的服务器)仍采用100 MHz。
Intel Pentium III CPU介绍
如果您对CPU比较关注的话,会发现目前PIII CPU有带“E”和带“B”的两种,E代表采用ATC技术的CPU;B代表支持133MHz外频的CPU;若两者都具备则该CPU称之为EB型。对于外频为133大家较易理解,无非是提高CPU访问内存的带宽。那么ATC指的是什么呢?
由于第二代PIII CPU采用了0.18微米的加工工艺,与第一代相比其CPU内核芯片面积减少了30%。为此Intel将内核芯片和L2 Cache芯片封装在同一芯片内,于是用于连接CPU内核和L2 Cache的BSB可做得非常短,更利于解决高速传输中的电气噪音等干扰问题,提供了以前仅在P-Pro和Xeon CPU才提供的全速通信,大大提高处理器访问L2 Cache的速度。另一方面,在BSB方面有一重大突破是BSB的数据宽度由以前的64位上升为256位。这一提高对系统尤其是CPU有何影响呢?
为了改进性能,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 tick内完成,则传完一个Cache Line至少需要4个Clock tick;若BSB数据宽度为256位,则只需在1个Clock tick内完成。
显然第二代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)具有以下特点:
(1)能访问最多达64GB的内存,而Coppermine仅能访问4GB内存
(2)支持2MB的L2 Cache,而Coppermine仅有256KB的L2 Cache。
(3)在一条FSB上可以最多支持4颗处理器,而Coppermine仅能支持2颗。
可见,PIII Xeon处理器比PIII CPU在性能上有了很大的提高,这也是为什么采用至强处理器的服务器的价格要高于采用普通处理器的服务器。象方正电脑的圆明4100服务器的价格就高于圆明1700服务器几万元。
CPU速度、CPU数量、L2 Cache与服务器性能
1.CPU速度与服务器性能
CPU速度对服务器的性能有非常重要的影响。许多人希望通过升级CPU的时钟频率来提高系统性能。那么究竟能提高多少呢?一般可按如下公式计算:
若CPU1主频为M1,CPU2主频为M2,CPU1和CPU2采用的是相同技术,M2 > M1,且M2 - M1 < 200MHz,则配置CPU2较配置CPU1性能提升(M2 - M1)/ M1×50%。这通常称之为CPU的50%定律。一般地两CPU主频越接近,越符合此50%定律。
2.CPU数量与服务器性能
当前IA服务器采用多CPU系统的越来越普遍,而这其中更多的是支持SMP,即对称多处理。SMP使系统中的多个CPU可对称地访问系统的所有硬件资源譬如内存、I/O总线和中断,由于每一个CPU所看到的是同一硬件资源。所以SMP硬件的扩展性直接关系到多个CPU共享硬件资源的效率。
目前只有Xeon(至强)系列CPU才支持大于2路的SMP系统。Pentium II和Pentium III只支持2路SMP。
SMP与服务器的应用有直接关系,下图是不同服务器应用类型对CPU数量的敏感度。
从上图可以发现对文件或打印服务器而言,增加一个CPU并不能明显地增加性能,CPU由1增加到2个时性能有稍许提高,但继续增加时性能反而降低。对于数据库或其他应用服务器而言,系统性能与CPU的数量相关性较大,从图上可以看出增加1到3个CPU系统的处理能力有明显提高。
增加服务器的CPU时究竟对性能有何影响?假设一款可支持8路SMP Xeon CPU的高端服务器,系统的内存足够大,网络速度和硬盘速度足够快。也就是增加CPU时系统不存在瓶颈。CPU数量与性能的关系如图2。
一般说来,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
从上面所显示的扩展情况来看,Cascades的扩展性能似乎没有Non-ATC的CPU如Tanner好。从目前的测试情况来看上述结果是真实的。然而这并不表明标准的Xeon CPU就比Cascades的扩展性能好。Cascades所产生的扩展问题主要有以下两方面原因:
(1)单Cascades CPU的起点性能高,相对说来扩展时增加的绝对值相对较小。
(2)当CPU数量增加时,内存所产生的瓶颈影响越来越大。
采用ATC技术的Cascades CPU性能发挥更依赖于高速内存,而目前除了可以采用内存多路交叉存取访问技术以提高内存性能之外,用户自己是不能控制内存带宽的。所以随着CPU的数量增加,内存产生的瓶颈也就越来越明显。只有依靠更新的内存控制器技术和内存技术,提供更快的内存才能满足下一代处理器的需求。
3.L2 Cache与服务器性能
处理器性能是一复杂的话题,因为CPU的性能更多地被系统结构、操作系统、应用和工作负荷等因素所影响。一般说来服务器需要随时处理来自不同用户的请求。所以CPU处理的数据更具突发性和随机性,而不象桌面系统具有连续性。所以CPU所需要的指令和数据主要是由L2 Cache提供。因此对于一台服务器来说L2 Cache的大小对系统性能是有重要影响的。我们曾经测试过方正圆明3000N服务器,发现一个2MB L2 Cache的450MHz Xeon CPU较同频的512KB L2Cache有约10%提升。
随着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颗。圆明4100支持4颗PIII Xeon CPU,内存最大可支持16GB ECC SDRAM,目前标配为2颗或1颗700MHz CPU、1MB二级缓存、512MB内存,充分根据本文所分析的性能增长情况配置,通过第三方性能测试实验室测试,圆明4100的Serverbench结果也高达1400TPS以上。显示了圆明4100强大的客户请求处理能力,可以为用户的数据库、数据仓库或电子商务应用提供最佳性能。