SMP、NUMA、MPP体系结构介绍

认识 Numa 架构 数据库

    从系统架构来看,目前的商用服务器大致能够分为三类,即对称多处理器结构 (SMP  Symmetric Multi-Processor) ,非一致存储访问结构 (NUMA  Non-Uniform Memory Access) ,以及海量并行处理结构 (MPP  Massive Parallel Processing) 。它们的特征分别描述以下: 服务器

    SMP(Symmetric Multi-Processor) 网络

  所谓对称多处理器结构,是指服务器中多个 CPU 对称工做,无主次或从属关系。各 CPU 共享相同的物理内存,每一个 CPU 访问内存中的任何地址所需时间是相同的,所以 SMP 也被称为一致存储器访问结构 (UMA  Uniform Memory Access) 。对 SMP 服务器进行扩展的方式包括增长内存、使用更快的 CPU 、增长 CPU 、扩充 I/O( 槽口数与总线数 ) 以及添加更多的外部设备 ( 一般是磁盘存储 )  架构

   SMP 服务器的主要特征是共享,系统中全部资源 (CPU 、内存、 I/O  ) 都是共享的。也正是因为这种特征,致使了 SMP 服务器的主要问题,那就是它的扩展能力很是有限。对于 SMP 服务器而言,每个共享的环节均可能形成 SMP 服务器扩展时的瓶颈,而最受限制的则是内存。因为每一个 CPU 必须经过相同的内存总线访问相同的内存资源,所以随着 CPU 数量的增长,内存访问冲突将迅速增长,最终会形成 CPU 资源的浪费,使 CPU 性能的有效性大大下降。实验证实, SMP 服务器 CPU 利用率最好的状况是 2  4  CPU  dom

 

NUMA(Non-Uniform Memory Access) 性能

  因为 SMP 在扩展能力上的限制,人们开始探究如何进行有效地扩展从而构建大型系统的技术, NUMA 就是这种努力下的结果之一。利用 NUMA 技术,能够把几十个 CPU( 甚至上百个 CPU) 组合在一个服务器内。 CPU 模块结构如图 2 所示:  spa

 

 

NUMA 服务器的基本特征是具备多个 CPU 模块,每一个 CPU 模块由多个 CPU(  4  ) 组成,而且具备独立的本地内存、 I/O 槽口等。因为其节点之间能够经过互联模块 ( 如称为 Crossbar Switch) 进行链接和信息交互,所以每一个 CPU 能够访问整个系统的内存 ( 这是 NUMA 系统与 MPP 系统的重要差异 ) 。显然,访问本地内存的速度将远远高于访问远地内存 ( 系统内其它节点的内存 ) 的速度,这也是非一致存储访问 NUMA 的由来。因为这个特色,为了更好地发挥系统性能,开发应用程序时须要尽可能减小不一样 CPU 模块之间的信息交互。 操作系统

利用 NUMA 技术,能够较好地解决原来 SMP 系统的扩展问题,在一个物理服务器内能够支持上百个 CPU 。比较典型的 NUMA 服务器的例子包括 HP  Superdome  SUN15K  IBMp690 等。 orm

   NUMA 技术一样有必定缺陷,因为访问远地内存的延时远远超过本地内存,所以当 CPU 数量增长时,系统性能没法线性增长。如 HP 公司发布 Superdome 服务器时,曾公布了它与 HP 其它 UNIX 服务器的相对性能值,结果发现, 64  CPU  Superdome (NUMA 结构 ) 的相对性能值是 20 ,而 8  N4000( 共享的 SMP 结构 ) 的相对性能值是 6.3 。从这个结果能够看到, 8 倍数量的 CPU 换来的只是 3 倍性能的提高。  事务

 

 

MPP(Massive Parallel Processing) 

  和 NUMA 不一样, MPP 提供了另一种进行系统扩展的方式,它由多个 SMP 服务器经过必定的节点互联网络进行链接,协同工做,完成相同的任务,从用户的角度来看是一个服务器系统。其基本特征是由多个 SMP 服务器 ( 每一个 SMP 服务器称节点 ) 经过节点互联网络链接而成,每一个节点只访问本身的本地资源 ( 内存、存储等 ) ,是一种彻底无共享 (Share Nothing) 结构,于是扩展能力最好,理论上其扩展无限制,目前的技术可实现 512 个节点互联,数千个 CPU 。目前业界对节点互联网络暂无标准,如 NCR  Bynet  IBM  SPSwitch ,它们都采用了不一样的内部实现机制。但节点互联网仅供 MPP 服务器内部使用,对用户而言是透明的。 

  在 MPP 系统中,每一个 SMP 节点也能够运行本身的操做系统、数据库等。但和 NUMA 不一样的是,它不存在异地内存访问的问题。换言之,每一个节点内的 CPU 不能访问另外一个节点的内存。节点之间的信息交互是经过节点互联网络实现的,这个过程通常称为数据重分配 (Data Redistribution)  

  可是 MPP 服务器须要一种复杂的机制来调度和平衡各个节点的负载和并行处理过程。目前一些基于 MPP 技术的服务器每每经过系统级软件 ( 如数据库 ) 来屏蔽这种复杂性。举例来讲, NCR  Teradata 就是基于 MPP 技术的一个关系数据库软件,基于此数据库来开发应用时,无论后台服务器由多少个节点组成,开发人员所面对的都是同一个数据库系统,而不须要考虑如何调度其中某几个节点的负载 

   NUMA  MPP 的区别 

  从架构来看, NUMA  MPP 具备许多类似之处:它们都由多个节点组成,每一个节点都具备本身的 CPU 、内存、 I/O ,节点之间均可以经过节点互联机制进行信息交互。那么它们的区别在哪里?经过分析下面 NUMA  MPP 服务器的内部架构和工做原理不难发现其差别所在。 

  首先是节点互联机制不一样, NUMA 的节点互联机制是在同一个物理服务器内部实现的,当某个 CPU 须要进行远地内存访问时,它必须等待,这也是 NUMA 服务器没法实现 CPU 增长时性能线性扩展的主要缘由。而 MPP 的节点互联机制是在不一样的 SMP 服务器外部经过 I/O 实现的,每一个节点只访问本地内存和存储,节点之间的信息交互与节点自己的处理是并行进行的。所以 MPP 在增长节点时性能基本上能够实现线性扩展 

  其次是内存访问机制不一样。 NUMA 服务器内部,任何一个 CPU 能够访问整个系统的内存,但远地访问的性能远远低于本地内存访问,所以在开发应用程序时应该尽可能避免远地内存访问。在 MPP 服务器中,每一个节点只访问本地内存,不存在远地内存访问的问题 

  数据仓库的选择 

  哪一种服务器更加适应数据仓库环境?这须要从数据仓库环境自己的负载特征入手。众所周知,典型的数据仓库环境具备大量复杂的数据处理和综合分析,要求系统具备很高的 I/O 处理能力,而且存储系统须要提供足够的 I/O 带宽与之匹配。而一个典型的 OLTP 系统则以联机事务处理为主,每一个交易所涉及的数据很少,要求系统具备很高的事务处理能力,可以在单位时间里处理尽可能多的交易。显然这两种应用环境的负载特征彻底不一样。 

  从 NUMA 架构来看,它能够在一个物理服务器内集成许多 CPU ,使系统具备较高的事务处理能力,因为远地内存访问时延远长于本地内存访问,所以须要尽可能减小不一样 CPU 模块之间的数据交互。显然, NUMA 架构更适用于 OLTP 事务处理环境,当用于数据仓库环境时,因为大量复杂的数据处理必然致使大量的数据交互,将使 CPU 的利用率大大下降。 

  相对而言, MPP 服务器架构的并行处理能力更优越,更适合于复杂的数据综合分析与处理环境。固然,它须要借助于支持 MPP 技术的关系数据库系统来屏蔽节点之间负载平衡与调度的复杂性。另外,这种并行处理能力也与节点互联网络有很大的关系。显然,适应于数据仓库环境的 MPP 服务器,其节点互联网络的 I/O 性能应该很是突出,才能充分发挥整个系统的性能。

相关文章
相关标签/搜索