从系统架构角度出发,服务器该如何分类?MPP 是什么?

写在前面

本文隶属于专栏《100个问题搞定大数据理论体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

本专栏目录结构和文献引用请见100个问题搞定大数据理论体系

解答

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

在这里插入图片描述

补充

SMP(Symmetric Multi-processor)

所谓对称多处理器结构,是指服务器中的多个CPU对称工作,无主次或从属关系。

各CPU共享相同的物理内存,每个CPU访问内存中的任何地址所需时间是相同的,因此SMP也被称为一致存储器访问结构(Uniform Memory Access,UMA)
对SMP服务器进行扩展的方式包括增加内存、使用更快的CPU、増加CPU、扩充IO(槽口数与总线数)及添加更多的外部设备(通常是磁盘存储)。

SMP服务器的主要特征是共享,系统中的所有资源(如CPU、内存、I/O等)都是共享的。

也正是由于这种特征,导致了SMP服务器的主要问题,即它的扩展能力非常有限

对于SMP服务器而言,每个共享的环节都可能造成SMP服务器扩展时的瓶颈,而最受限制的则是内存

由于每个CPU必须通过相同的内存总线访问相同的内存资源,因此,随着CPU数量的增加,内存访问冲突将迅速增加,最终造成CPU资源的浪费,使CPU性能的有效性大大降低。

实验证明,SMP服务器CPU利用率最好的情况是2~4个CPU

NUMA(Non-Uniform Memory Access)

由于SMP在扩展能力上的限制,人们开始探究如何进行有效的扩展从而构建大型系统的技术,NUMA就是这种努力下的结果之一。

利用NUMA技术,可以把几十个CPU (甚至上百个CPU)组合在一台服务器内。其CPU模块结构如图所示。

NUMA

NUMA服务器的基本特征是拥有多个CPU模块,每个CPU模块由多个CPU(如4个)组成并且具有独立的本地内存、I/O槽口等。

由于其节点之间可以通过互联模块(如称为 Crossbar Switch)进行连接和信息交互,因此,每个CPU可以访问整个系统的内存(这是NUMA系统与MPP系统的重要区别)。

显然,访问本地内存的速度将远远高于访问异地内存(系统内其他节点的内存)的速度, 这也是非一致存储访问NUMA的由来。

由于这个特点,为了更好地发挥系统性能,开发应用程序时需要尽量减少不同CPU模块之间的信息交互。

利用NUMA技术,可以较好地解决原来SMP系统的扩展问题,在一台物理服务器内可以支持上百个CPU。

但是NUMA技术同样有一定的缺陷,由于访问异地内存的时延远远超过访问本地内存,因此,当CPU数量增加时,系统性能无法线性增加

如惠普公司发布 Superdome服务器时,曾公布了它与惠普其他unix服务器的相对性能值,结果发现,64路CPU的Superdome服务器(NUMA结构)的相对性能值是20,而8路N4000(共享的SMP结构)
的相对性能值是6.3。从这个结果可以看出,8倍数量的CPU换来的只是3倍性能的提升。

MPP (Massive Parallel Processing)

和NUMA不同,MAA提供了另外一种进行系统扩展的方式,它由多台SMP服务器通过一定的节点互联网络进行连接,协同工作,完成相同的任务,从用户角度来看是一个服务器系统。

其基本特征是由多台SMP服务器(每台SMP服务器称为节点)通过节点互联网络连接而成,每个节点只访问自己的本地资源(内存、存储等)。

MPP是一种完全无共享(share Nothing)结构,因而扩展能力最强,理论上可以无限扩展,目前的技术可以实现512个节点互联.包含数千个CPU。

目前业界对节点互联网络暂无标准, 它们都采用了不同的内部实现机制。但节点互联网络仅供MPP服务器内部使用,对用户而言是透明的。

在MPP系统中.每个SMP节点也可以运行自己的操作系统,数据库等。但和NUMA不同的是,它不存在异地内存访问的问题。换言之,每个节点内的CPU不能访问另一个节点的内存。节点之间的信息交互是通过节点互联网络实现的.这个过程一般称为数据重分配(
Data Redistribution )。

但是MPP服务器需要一种复杂的机制来调度和平衡各个节点的负载和并行处理过程

目前,-—些基于MPP技术的服务器往往通过系统级软件(如数据库)来屏蔽这种复杂性。

服务器架构设计

NUMA与MPP的区别

从架构来看,NUMA与MPP有许多相似之处:

  1. 它们都由多个节点组成;
  2. 每个节点都有自己的CPU、内存、I/O;
  3. 节点之间都可以通过节点互联机制进行信息交互。

那么二者的区别在哪里?通过分析NUMA和MPP服务器的内部架构与工作原理不难发现其差异所在。

节点互联机制不同。

  1. NUMA的节点互联机制是在同一台物理服务器内部实现的,当某个CPU需要进行异地内存访问时,它必须等待,这也是NUMA服务器无法实现CPU增加时性能线性扩展的主要原因。
  2. 而MPP的节点互联机制是在不同的SMP服务器外部通过io实现的,每个节点只访问本地内存和存储,节点之间的信息交互与节点本身的处理是并行进行的。因此,MPP在增加节点时,其性能基本上可以实现线性扩展。

内存访问机制不同。

  1. 在NUMA服务器内部,任何一个CPU都可以访问整个系统的内存, 但异地内存访问的性能远远低于本地内存访问,因此,在开发应用程序时应该尽量避免异地内存访问。
  2. 而在MPP服务器中,每个节点只访问本地内存,不存在异地内存访问的问题。
### MPP架构与Hadoop在大数据处理中的主要区别 MPP架构与Hadoop在大数据处理中的主要区别体现在其设计目标、数据处理方式、适用场景以及技术实现等多个方面。 MPP架构的核心理念是将一个大问题切分为多个子问题,每个节点独立处理一部分数据,但整体上仍然保持问题的一致性。MPP系统中的每个节点通常具备较强的计算能力,节点之间通过高速网络互联,数据分布和任务调度由系统统一管理。这种架构适用于结构化数据的高效查询和分析,支持标准SQL语法,并具备事务处理能力。MPP数据库在数据仓库、商业智能(BI)分析等领域表现尤为出色,能够提供较高的查询性能和批量数据处理能力[^1]。 相比之下,Hadoop架构的设计初衷是为了处理非结构化和半结构化数据,适用于海量数据的存储和批处理任务。Hadoop通过将大问题拆解为小问题,逐层处理的方式,实现了高度的可扩展性和灵活性。Hadoop生态系统中的组件如HDFS、MapReduce、YARN、Hive等,共同构成了一个强大的数据处理平台。Hadoop的优势在于其强大的数据吞吐能力和对非结构化数据的支持,但其查询效率和SQL开发能力相对较弱[^1]。 在数据最大吞吐量方面,Hadoop表现出色,能够高效处理大规模数据集,而MPP受限于单个节点的处理能力,因此在数据吞吐量上不如Hadoop。然而,在单机计算性能方面,MPP通常更强,因为MPP节点通常采用高性能的语言如C++编写,而Hadoop则是基于Java实现的,这在一定程度上影响了其性能表现[^1]。 数据写入效率方面,Hadoop由于每个节点只需处理简单的工作,数据分布均匀,因此写入效率较高。而在MPP架构中,数据写入需要考虑数据的分布规则,确保数据能够正确地分配到相应的节点上,这增加了数据写入的复杂性[^1]。 数据读取效率方面,MPP架构通常更优,因为MPP在存储数据时遵循特定的规则,使得数据读取时能够高效地定位和获取所需数据。而Hadoop的数据分布是随机的,尽管保证了数据的均匀性,但在数据读取时可能需要更多的网络传输和计算资源。 安装部署方面,MPP架构通常更为简便,可以实现一体化安装,而Hadoop则需要安装多个组件,如Hive、HDFS、ZooKeeper等,这增加了部署的复杂性和维护成本。 SQL开发能力方面,MPP架构支持更多的函数处理,能够提供更为丰富的SQL功能,而Hadoop中的某些特殊计算可能需要依赖代码实现,这在一定程度上限制了其SQL开发能力[^1]。 ### 示例代码:MPP架构中的SQL查询执行 以下是一个简单的SQL查询示例,展示如何在MPP架构中执行并行查询: ```sql SELECT product_category, SUM(sales_amount) AS total_sales FROM sales_data GROUP BY product_category ORDER BY total_sales DESC; ``` 在这个查询中,MPP架构会将`sales_data`表的数据分布到多个节点上,每个节点独立执行`GROUP BY`和`SUM`操作,计算出各自节点上的部分结果。之后,协调节点会将这些部分结果进行汇总,生成最终的聚合结果,并按`total_sales`排序输出。 ###
评论 33
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值