服务器 频道

HP DL980 G7在8路服务器架起“立交桥”

  【IT168 导购】谈到服务器的可扩展性,一般可以分为Scale-out横向扩展和Scale-up纵向扩展两种。前者以x86集群为代表,通过增加多个节点来实现分布式计算、负载均衡、容错等功能,后者则以小型机为代表,通过在一台服务器中增加计算、内存、存储和I/O资源,来满足不断增长的业务负载需求,如大型数据库、OLTP、虚拟化等,但成本相对较高。

  随着这几年越来越多的企业用户开始在关键业务领域里用x86服务器来替代小型机,加上英特尔、HP等厂商在这一领域的技术创新与突破,使得x86也开始朝“大服务器”方向(Scale-up)发展。HP ProLiant DL980 G7正是这一趋势的代表,它很好地把x86服务器的规模经济效应、开放标准与小型机的高性能、高可扩展、高可用等结合起来,为企业关键业务应用提供了全新的选择。

  而这一切则源于HP从其Superdome高端UNIX服务器上移植下来的PREMA架构——从字面上看,PREMA是Performance(性能)、Resiliency(弹性)、Efficiency(效率)、Manageability(可管理性)和Availability(可用性)的首字母组合。下面我们就一起来剖析一下这个首次被HP应用于x86服务器产品线的神秘设计。

在8路系统中架起“立交桥”
▲采用PREMA架构的HP ProLiant DL980 G7八路服务器

  在8路系统中架起“立交桥”

  我们知道,今天借助英特尔至强7500及其QPI直连技术,服务器厂商无须第三方节点控制器技术,就能轻轻松松把两个四路系统拼接成八路服务器,从而推动8路以上高端x86服务器市场的繁荣,但这其实是以牺牲一定性能为代价的,当然这也给那些更具技术实力的厂商带来了创新机会——可以提供性能更好、效率更高的高端服务器方案。

  为了让大家更容易理解,我们不妨打个比方,试想一下,在一个拥有8条路交汇的路口,仅仅通过红绿灯来指挥交通,车辆等候通行的时间必定会受到很大制约,而如果架设立交桥,则可以大大提高道路交通效率。与此类似,在一个拥有8颗处理器的服务器系统中,为了保证处理器之间的缓存一致性,需要通过CPU之间频繁的监听请求与响应来协调,但这会占用链路和缓存带宽,而且,当源监听或监听回复需要多个跳频(hop)时,这些源监听还会造成内存延迟,对此,我们有没有可能借助“立交桥”来提高CPU通信效率呢?

  答案是肯定的。在DL980中,HP就使用了以XNC(X Node Controller)节点控制器为核心的“立交桥”架构,该控制器技术源于HP Integrity Superdome 2,如下图所示。

在8路系统中架起“立交桥”
▲HP DL980 G7中的PREMA架构图

  每颗CPU拥有4个QPI通道,其中1条连接另一颗处理器,并组成“QPI岛”,第2条连接I/O,另外两条分别连接两个XNC控制器。XNC节点控制器主要有两个功能:智能CPU缓存和冗余系统架构。所谓智能CPU缓存,就是每个“QPI岛”中的处理器可以访问存储在节点控制器中的CPU缓存状态信息,因此减少了CPU之间的缓存通信和访问本地内存的延迟。这对于那些无须访问全局内存,或只在一颗处理器或一组处理器内运行的应用来说,效果更好,比如虚拟机、SAP、高性能计算等。

  如果不使用节点控制器,会怎样呢?如下图所示。在一个没有控制器的8路系统中,CPU之间无法完全通过QPI直连,比如CPU0不能与CPU6实现直连,向CPU6发送任何请求回应信息都要经过CPU7,中间存在两次跳频(Hop)。平均下来,这类系统每次监听请求和响应要经过1.57次跳频,QPI链路带宽有60%都被这些CPU缓存监听所消耗。相比之下,在采用智能CPU缓存的HP PREMA架构中,处理器之间实现了“单跳”(Single hop)连接,减少了处理器间的通信流量,一致性监听和回复仅占用10-20%的QPI带宽,本地内存访问延迟也比前一种方案要低30%。

在8路系统中架起“立交桥”
▲没有使用控制器的八路系统

  因此,当一个系统中的处理器数量增多,这些处理器之间的沟通协作也会以加速度增加,从而会带来系统瓶颈,比如在一个16路系统中,某两个CPU之间的通信可能需要至少3次跳频。HP PREMA架构通过其XNC节点控制器技术,打破了这一瓶颈,不仅可以更高效地实现八路系统,也能够进一步向16路、32路实现平衡、弹性扩展——即在增加处理器资源的同时成比例添加内存和I/O资源,这对于Scale-up服务器来说是非常关键的。

  今天的一台DL980 G7可以在一个机箱内最多支持到80个CPU内核、160个逻辑处理器(使用最新的10核至强E7处理器),4TB内存容量(使用128个DIMM插槽和32GB内存条),16个I/O插槽,足以支持苛刻的计算密集型、内存密集型、I/O密集型以及大规模虚拟化应用。

0
相关文章