[an error occurred while processing this directive]
主页 > 主机学院 > 构架与管理 > 正文 [an error occurred while processing this directive]

解读IBM企业级X架构NUMA技术


  茶乡浪子 ◎  2006-09-25 IT168

    在IBM的企业级X架构中,最突出的特点就是采用了原来只有在UNIX高性能服务器中才采用的NUMA体系架构(Non-Uniform Memory Access,非均匀存储器访问)技术。使得它可以做到模块化扩展,具有比SMP更好的扩展优势。SMP结构的服务器一般只能做到8路处理器系统,再多的处理器,对服务器的性能提升非常有限,而采用NUMA技术后,很容易地使服务器扩展到16路、32路,甚至64路,据悉目前理论上最多可扩展到512路。但遗憾的是在性能提升上不能与处理器数量的增加成比例。下面具体分析。

     一、NUMA技术概述

     IBM在IA架构服务器中所采用的NUMA(MBB)技术从出现到现在已经超过十年了,最早是由Sequent (NumaQ)公司在八十年代末到九十年代初时发明并采用的。Cray公司在九十年代初,在它的Cray 6400上采用了MBB技术,该机型是Sun E10000的前身。Compaq公司在2000年一季度发布了它的基于MBB技术的机型Wildfire (GS320);HP公司发布了业界最后一款基于MBB技术的机型Superdome,那是在2000年三季度。Sun公司在2001年三季度发布的Starfire (F15K)在体系结构上并无变化,只是将原来E10000上的CPU换成了SPARC3而已。

    在IBM的MBB结构中,每个BB(Building Block)可包含4路CPU,若干内存和I/O卡(在Sun服务器上称BB为board;在HP服务器上称BB为cell;在原先的Compaq服务器上称BB为quad)。不同BB内的CPU可以有不同的时钟频率,所有的BB通过一种称为“crossbar switch”的交换机制连接在一起,实现BB之间的点对点的高速连接。在日常应用中,通常把每个BB称之为“node(节点)”,这样整个NUMA就是由多个节点组成的,每个节点不仅包括单独的处理器,而且还包括独立的内存和I/O在在在存储卡。从结构上来讲,每个节点就相当于一个SMP系统,整个NUMA系统就是多个SMP系统的互联结构,如图1所示。
  
  
     图1

    基于MBB技术的服务器是由多个BB构成的,所以它天生具有物理分区(Physical Partition)的特性。在MBB服务器上存在一个连接BB的互连机制(crossbar switch),它工作在一个固定的时钟频率上。例如,在Sunfire服务器上的Uniboard机制就是完成这种互连功能的。所有MBB结构的服务器都具有一个“显著”的优势,那就是可以热插拔CPU板和内存板。这是因为每一个BB是物理分开的,每个4路CPU板可以单独从系统中隔离出来并将其断电。但有一点需要注意:在一个运行的系统中,从一个BB中拔出CPU、内存或I/O板是有限制的,这基于每个机型的设计不同而不同。例如,Sun 6800服务器就有一个警告标签,其注明每个Uniboard槽在系统运行时空槽位的时间不能超过60秒(而且电源、温度等环境因素必须控制在一定的范围内)。由此推断,F12K/F15K可能时间会更短。采用MBB技术可以比较容易的设计出拥有更多数量CPU的服务器。在这种服务器上既可以运行一个操作系统,也可以在一个或多个BB上运行多个操作系统。这就是所谓的服务器(基于物理分区)的逻辑分区。

    在MBB具有以上优点的同时,也具有一定的缺陷,那就是它的性能提升与CPU数量提升不成比例。如Sunfire企业级服务器中,其总线时钟是150MHz,不管CPU的主频是多少,它是固定不变的。这样,就会带来数据/指令被传送出去的等待时间过长问题。这是典型的高CPU时钟频率和低总线速度的矛盾。另外,HP公司当初发布Superdome服务器时,曾公布了它与HP其它UNIX服务器的相对性能值,结果发现,64路CPU的Superdome(MBB结构)的相对性能值是20,而8路N4000(共享结构)的相对性能值是6.3。从这个结果可以看到,8倍数量的CPU换来的只是3倍性能的提升,造成这种现象的根本原因就在MBB结构上。究其原因,就是因为Superdome上的每个cell(BB)里的CPU、内存或I/O卡可能需要访问其它cell里的数据。crossbar switch在cell之间建立点对点的连接,但同时带来延迟(latency)。即如果一个连接请求建立不成功时,则会再试一次直到建立连接成功,而此时其它的连接请求将会等待。在实际环境中,很多客户通过建立物理分区(每个分区中最多12到16个CPU)的方法来尽量减少这种延迟的影响。

    最后要说明的一点,就是NUMA属一种广义上的服务器结构。在Sequent公司公司出了最初的NUMA体系结构后,许多服务器厂商都开始采用了这一技术,并且进行了二次开发,于是又有许多不同的NUMA升级版本诞生了。目前从广义上来讲,以下结构均可视为NUMA结构类型:RMC(Reflective Memory Cluster,反射内存群集)、MPP((Massively Parallel Processing,大规模并行处理)、SGI的CC-NUMA(Cache Coherent NUMA,高速缓存的一致性的非均匀存储器访问)、IBM的NUMA-Q(也称为“MBB”)以及COMA(Cache Only Memory Architecture ,高速缓存唯一的存储器体系结构),但它们之间的差异却相当大。RMC和MPP属群集技术,有多个节点,属于“NUMA”的部分只是节点间的软件一致性。至于CC-NUMA、NUMA-Q和COMA,其硬件一致性是在节点内部,其“NUMA”组件是在一个节点内。但这些NUMA技术通常只是应用于UNIX高性能服务器上。虽然NUMA架构技术并不是IBM所独有的,但在IA架构服务器中,目前基本上只有IBM这么做了。第一个不采用SMP技术的IA服务器就是X440。2002年3月,当很多厂家刚开始用Intel Xeon MP处理器来搭建4路服务器的时候,IBM eServer X440不仅在4U机箱中支持4路Xeon MP处理器,而且通过企业级X-架构技术轻松实现了4路到8路的扩展。2003年3月19日,随着IBM eServer x440的16路产品的推出,EXA企业级X-架构还真正实现了Xpand-On-Demand,使得用户在IA服务器上按需增长的梦想也得以实现。
  
    二、SMP、MPP与NUMA架构比较

    在服务器的架构构方面一般可分为小型独立服务器模式、SMP(对称多处理)模式、MPP(大规模并行处理)模式和NUMA模式四类。

    SMP模式将多个处理器与一个集中的存储器相连,如图2所示。这是目前最为流行的一种服务器架构,因为它在低处理器系统中,通过简单地增加处理器数量线性地提高服务器性能。不仅许多服务器硬件,如CPU(包括各品牌服务器CPU)、芯片组等一般都支持SMP架构,就连所用操作系统也都基本上支持SMP,如Windows 2000 Server、Windows Server 2003和UNIX、LINUX系统。
  
     
  
          图2

    在SMP模式下,所有处理器都可以访问同一个系统物理存储器,这就意味着SMP系统只运行操作系统的一个拷贝。因此SMP系统有时也被称为一致存储器访问(UMA)结构体系,一致性意指无论在什么时候,处理器只能为内存的每个数据保持或共享惟一一个数值。很显然,SMP的缺点是可伸缩性有限,因为在存储器接口达到饱和的时候,增加处理器并不能获得更高的性能。所以一般来说采用SMP架构的服务器一般最多只能是8路处理器系统。

     MPP模式则是一种分布式存储器模式,能够将更多的处理器纳入一个系统的存储器,如图3所示。一个分布式存储器模式具有多个节点,每个节点都有自己的存储器,可以配置为SMP模式,也可以配置为非SMP模式。单个的节点相互连接起来就形成了一个总系统。MPP体系结构对硬件开发商颇具吸引力,因为它们出现的问题比较容易解决,开发成本比较低。由于没有硬件支持共享内存或高速缓存一致性的问题,所以比较容易实现大量处理器的连接。可见,单一SMP模式与MPP模式的关键区别在于,在SMP模式中,数据一致性是由硬件专门管理的,这样做比较容易实现,但成本较高;在MPP模式中,节点之间的一致性是由软件来管理,因此,它的速度相对较慢,但成本却低得多。 

 

                     图3
  
    NUMA模式也采用了MPP架构的分布式存储器模式,不同的是所有节点中的处理器都可以访问全部的系统物理存储器(参见图1)。然而,每个处理器访问本节点内的存储器所需要的时间,可能比访问某些远程节点内的存储器所花的时间要少得多。换句话说,也就是访问存储器的时间是不一致的,这也就是这种模式之所以被称为“NUMA”的原因。简而言之,NUMA既保持了SMP模式单一操作系统拷贝、简便的应用程序编程模式以及易于管理的特点,又继承了MPP模式的可扩充性,可以有效地扩充系统的规模,是SMP架构的模块化。这也正是NUMA的优势所在。总的来说,NUMA体系结构的优势主要体现在以下几个方面:

    首先,NUMA的突破性技术彻底摆脱了传统的超大总线对多处理结构的束缚。它大大增强单一操作系统可管理的处理器、内存和I/O插槽。

    其次,NUMA设计的重点是让处理器快速地访问在同一单元的内存,NUMA处理器访问同一单元上的内存的速度比一般SMP模式超出一倍。并且,NUMA操作系统充分利用处理器缓存,能达到极高的寻址命中率。SMP模式虽然比NUMA简单,但是,所有的处理器访问内存的时间是一致且缓慢的。同时,基于SMP的总线存着在一个物理极限,令系统的扩充性逐步降低。此外,在基于SMP体系结构的大型系统中,平衡地增加处理器、I/O和内存变得更加困难。

    最后,NUMA系统提供内存互联的硬件系统,这种技术可以开发新型动态的分区系统。系统分区的好处在于允许系统管理员在同一计算机内运行多个操作系统(如Unix和Windows NT),并根据用户工作负荷的要求,在不同的操作系统环境间,简单地管理和使用CPU和内存资源,从而实现最佳的性能和最高的资源利用率。

    三、NUMA与SMP服务器性能的较量

    通过前面的分析,我们知道,从处理器的利用效率来看,在SMP的体系结构下处理器相互之间的通信需要消耗额外的计算能力,并且计算能力的消耗量是非线性的,处理器的数目越多,额外的处理器所能提供的性能增益也就越小。因此,8路结构基本就是SMP方式所能实现的实际应用极限,这一点基本上属于共识。然而就在8路这个临界级别上,惠普与IBM产生了不同的看法。

    新HP在2001年在COMPAQ公司的Proliant 8路服务器基础上采用HP自行研制的F8芯片组,推出了SMP架构的Proliant DL760 G2/DL7408路服务器,分别如图4左、右图所示。这两款服务器均支持Intel Xeon MP 2.0GHz~2.8GHz处理器,性能非常之高。直到现在,HP在IA架构8路服务器领域也是以这两款服务器为主角的。在IA架构中,HP并没有像IBM一样推出更多路处理器系统服务器。
     

                            图4
    IBM的NUMA架构x440服务器正式发布的时间还要早于HP的PDL 760 G2/PDL 740服务器,它是IBM的第一款8路IA架构服务器。不过IBM与HP的理解不一样,在2001年推出x440之后,在2003年又推出了最高可达32路的IA架构x445服务器。x440与x445分别如图5左、右图所示。
  
  
   
                图5  

    由于一直以来,SMP架构是整个中低档服务器市场的主流,而且在性能方面一直都有相当不错的表现,对于IBM在IA架构服务器领域采用高性能服务器的NUMA架构,人们一开始并不十分接受IBM的这种观点。再加上人们从各种宣传中看到,NUMA架构服务器的性能并不能随着处理器数量的增加而线性增加。所以根据IDC截止到2002年第二季度的数据,惠普的8路服务器累计发货量占据了整个市场的60%。

    但一现象很快随着IBM对企业级X架构宣传力度的加大而改变。到了2003年3月25日,IBM企业系统事业部在上海援引IDC的统计数据说,经过一年的市场争夺,IA架构的xSeries服务器在中国的占有率已经提升到31%,基本逼近IA架构服务器市场占有率第一名的HP。IBM称自己有信心再抢5%份额,在年内成为工业标准服务器市场的“老大”。而去年同期,IBM xSeries在国内的市场占有率仅在18%左右。到了2003年年底,根据最新发布的IDC 2003年第三季度中国服务器市场报告表明,在营业额方面,IBM的8路服务器以51.2%的市场份额抢得了市场第一的佳绩。这样一个事实再次证明,NUMA架构还是具有相当优势的。其实早在2002年的专业测试机构已公布的30多项测试成绩中,eSever x440占据20多项第一,远比HP的Proliant DL760 G2。
  
    当然之所以使得IBM和HP这两位服务器市场巨人在8路级别服务器架构上采取不同的选择,其根本就是它们对于这两种不同架构的理解不同。

   HP认为,SMP架构是流行最广泛的IA服务器体系标准,因此该架构与操作系统的兼容性是最好的,当时市面上所零售的Windows 2000系列服务器版无需安装任何补丁就可以在Proliant DL760G2上正常运行,各种Linux也可以直接运行。相反,比这两个硬件平台还要早发布的,采用NUMA架构成IBM eSERVER x440却需要安装HAL(硬件识别补丁)才能在Windows 2000下正常运行,Linux也需要进行一定的改装。采用F8芯片组,支持最新的8P Intel Xeon MP2.0GHz处理器和超线程技术。

    同时惠普还认为,NUMA架构的4级缓存仅仅是在处理器的内置缓存较小时才能起到作用,如Foster的512K缓存。但当处理器的芯片上缓存足够大时,4级缓存的作用就不再明显,甚至可能成为累赘。因为当处理器核心在当前的慢速缓存中找不到数据时,它会通过一定的算法在下一级中查询,直至查到为止,因此多一级缓存就会多一些延迟。从惠普刚刚发布8路服务器所公布的TPMC(每秒交易处理数)值来看,Proliant DL760 G2要略高于IBM同样配置的eServer x440。此外HP认为,尽管eServer x440可以简单地在硬件层面上从8路升级到16路,但用户的应用并不是简单地扩展,还需要应用层与操作系统层的结合。而且,当从8路升级到16路的时候,这种升级并不经济:投资增加了一倍,但性能增加不到40%。

    IBM则认为NUMA方式的好处是能够很好地进行扩展,比如,I/O扩展柜,x440可提供最多12个外部的热插拔PCI槽,而SMP的服务器受到机箱的空间限制,是无法提供更多的PCI槽的。另一个最典型的表现它的4级缓存上。在SMP方式当中,主板上的核心芯片组不支持处理器以外的缓存,前端总线的带宽大多数都被处理器与内存之间的频繁的数据交换所占据;而当应用NUMA架构时,应用程序所获取的数据大多数都能够从外部的缓存获取,改变了主板上的数据流模式,使前端数据总线的带宽能够更多地应用在例如网卡等I/O设备上,实现强I/O效果。IBM认为,基于英特尔处理器的服务器并不是处理器的发展不够快,而是I/O设备跟不上发展,NUMA结构可以较好地使平衡CPU与外部I/O设备。

    无论这两位巨人如何看待SMP和NUMA这两种架构,有一点可以肯定的是它们都没有绝对的优势。SMP可以使服务器随处理器数量的增加,性能呈线性增加,并且能与原有操作系统很好的兼容,基本上不需要安装什么补丁。而NUMA架构虽然在扩展性和I/O带宽方面具有明显优势,但是服务器性能并不能随处理器数量的增加而呈线性提高,并且它需要新系统的配合,在原来的Windows 2000 Server系统中需要安装多种补丁。

最新更新
互动精华
[an error occurred while processing this directive]
[an error occurred while processing this directive]
 专题列表
[an error occurred while processing this directive]
 推荐供应商列表
[an error occurred while processing this directive]
[an error occurred while processing this directive]
[an error occurred while processing this directive]