境外服务器的3种体系架构:SMP、NUMA、MPP!
从系统的体系架构来看,目前的商用服务器大体上可以分为3类:SMP(对称多处理器)结构、NUMA(非一致存储访问)结构和MPP(海量并行处理)结构。这3类系统体系架构的服务器,它们具体的特征描述如下:

一、 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。

![服务器的3种体系架构:SMP、NUMA、MPP!]

二、NUMA(Non-Uniform Memory Access)

由于SMP服务器在扩展能力上的限制,人们开始探究如何进行有效地扩展从而构建大型系统的技术,NUMA(非一致存储访问)就是这种努力下的结果之一。利用NUMA(非一致存储访问)技术,可以把几十个CPU,甚至上百个CPU组合在一个服务器内。
NUMA服务器的基本特征是,具有多个CPU模块,每个CPU模块由多个CPU(例如4个)组成,并且具有独立的本地内存、I/O槽口等。由于其节点之间可以通过互联模块进行连接和信息交互,因此每个CPU都可以访问整个系统的内存。显然,访问本地内存的速度,将远远快于访问远地内存(系统内其它节点的内存)的速度,这也是“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(非一致存储访问)不同,MPP(海量并行处理)提供了另外一种进行系统扩展的方式,MPP(海量并行处理)由多个SMP服务器通过一定的节点互联网络进行连接,协同工作,完成相同的任务,从用户的角度来看是一个服务器系统。
MPP服务器基本特征是,由多个SMP服务器(每个SMP服务器称为一个“节点”)通过节点互联网络连接而成,每个节点只访问自己的本地资源(内存、存储等),是一种“完全无共享/零共享”结构,因而扩展能力最好,理论上其扩展无限制,目前的技术可实现512个节点的互联,数千个CPU。
在MPP(海量并行处理)系统中,每个SMP(对称多处理器)节点也可以运行自己的操作系统、数据库等。但和NUMA(非一致存储访问)不同的是,MPP(海量并行处理)系统不存在“异地内存访问”的问题。换言之,每个节点内的CPU,都不能访问另一个节点的内存。节点之间的信息交互是通过节点互联网络实现的,这个过程一般称为“数据重分配”。
MPP服务器需要一种复杂的机制来调度和平衡各个节点的负载和并行处理过程。目前一些基于MPP(海量并行处理)技术的服务器,往往通过系统级软件(如:数据库)来屏蔽这种复杂性。举例来说,NCR的Teradata就是基于MPP(海量并行处理)技术的一个关系数据库软件,基于此数据库来开发应用时,不管后台服务器由多少个节点组成,开发人员所面对的都是同一个数据库系统,而不需要考虑如何调度其中某几个节点的负载。
四、 NUMA(非一致存储访问)与MPP(海量并行处理)的区别
从系统架构来看,NUMA(非一致存储)与MPP(海量并行处理)具有许多相似之处:它们都由多个节点组成,每个节点都具有自己的CPU、内存、I/O,节点之间都可以通过节点互联机制进行信息交互。那么它们的区别在哪里?通过下面分析NUMA(非一致存储访问)和MPP(海量并行处理)服务器的内部架构和工作原理不难发现两者的差异所在。
1、首先是节点互联机制不同,NUMA(非一致存储访问)的节点互联机制是在同一个物理服务器内部实现的,当某个CPU需要进行远地内存访问时,它必须等待,这也是NUMA服务器无法实现CPU增加时,性能线性扩展的主要原因。而MPP(海量并行处理)的节点互联机制,是在不同的SMP服务器外部通过I/O实现的,每个节点只访问本地内存和存储,节点之间的信息交互与节点本身的处理是并行进行的。因此MPP(海量并行处理)在增加节点时,性能基本上可以实现线性扩展。
2、其次是内存访问机制不同。在NUMA服务器内部,任何一个CPU都可以访问整个系统的内存,但远地内存访问的性能,远远低于本地内存访问,因此在开发应用程序时应该尽量避免远地内存访问。而在MPP服务器中,每个节点只访问本地内存,不存在远地内存访问的问题。
华纳云,作为一家拥有丰富行业积淀的专业云计算服务提供商、云安全服务提供商,致力于为广大用户提供的“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器”等云主机租用服务,具有安全稳定、简单易用、高可用性、高性价比的特点与优势,专为广大企业上云打造定制,能够满足企业用户丰富、多元化的应用场景需求。

海外服务器的3种体系架构:SMP、NUMA、MPP相关推荐

  1. 服务器体系(SMP, NUMA, MPP)与共享存储器架构(UMA和NUMA)

    <Linux内存管理:转换后备缓冲区(TLB)原理> <内存管理:Linux Memory Management:MMU.段.分页.PAE.Cache.TLB> <Mem ...

  2. 【大话存储】多CPU架构变迁, SMP,NUMA,MPP

    多CPU架构演进 对称多处理器结构:(SMP,Symmetric Multi-Processor) 服务器最开始的时候是单CPU,然后才进化到了双CPU甚至多CPU的SMP架构.所谓SMP架构指的是多 ...

  3. 达梦数据库——DM8安装操作及体系架构介绍

    文章目录 一.数据库行业的发展趋势 二.国产数据库的现状 1.自主研发 三.达梦公司的介绍和达梦产品 1.达梦公司的由来 2.达梦公司的产品线 四.DM8的安装及实例的管理 1.软件信息收集 2.硬件 ...

  4. 【ORACLE数据库体系架构】

    一.数据库的逻辑单位:数据块(block).区(extent).段(segment).表空间(tablespace) 1.数据块:默认大小为8k;是数据库最小的逻辑单位 块大小分为:2K,4K:表很小 ...

  5. 服务器概念、组成和架构详解

    目录 前言: 1.服务器是什么? 2.服务器的构成? 3.服务器的分类? 4.X86/ARM之争? 一.服务器是什么? 二. 服务器的构成? 2.1 服务器的逻辑架构 2.2 服务器的硬件 2.3 服 ...

  6. 面向服务体系架构(SOA)和数据仓库(DW)的思考

    摘要: 当前业界对面向服务体系架构(SOA)和数据仓库(Data Warehouse,DW)都介绍的很多,提出了很多优秀的解决方案,但是一般是把 SOA 和 DW 单独考虑,SOA 和 DW 有着共同 ...

  7. linux网络驱动架构,Linux网络体系架构和网卡驱动设计

    Linux网络体系架构 1.Linux的协议栈层次 2.Linux的网络子系统架构 Linux的协议栈层次 Linux的优点之一在于它丰富而稳定的网络协议栈.其范围从协议无关层(例如通用socket层 ...

  8. 【Linux 内核】Linux 内核体系架构 ( 硬件层面 | 内核空间 | 用户空间 | 内核态与用户态切换 | 系统调用 | 体系结构抽象层 )

    文章目录 一.Linux 内核体系架构 二.内核态与用户态切换 ( 系统调用层 ) 三.体系结构抽象层 一.Linux 内核体系架构 Linux 内核最初的源码不足一万行 , 当前的 Linux 内核 ...

  9. [翻译]No.9352 SharePoint Pages(1)之SharePoint页面体系架构

    [开篇]最近一段时间在研究SharePoint技术,在内网建设了一个门户的原型,做一些尝试.由于一些需求要新建一些功能页.开始使用SharePoint制作页面,搞了半天才明白原来内容页不支持内联代码, ...

最新文章

  1. servlet httpClient 下载远程文件
  2. 第三方类AFNetworking
  3. 儿童python编程入门-天津少儿编程Python入门
  4. java语言编程基础_java语言编程基础
  5. Thread.yield()和Thread.sleep(0)
  6. [网络收集]Web.config配置文件详解
  7. Qt笔记-Linux程序控制台启动界面实例
  8. RPM 打包技术与典型 SPEC 文件分析
  9. 《HBase权威指南》读书笔记6:第六章 可用客户端
  10. PHP8.0正式版的编译安装与使用
  11. IEEE Transactions on Systems, Man, and Cybernetics: Systems(TSMC)投稿须知
  12. 推荐 :数据科学与大数据技术专业特色课程研究
  13. 小程序记账项目源码-采用云开发
  14. 目标检测YOLO实战应用案例100讲-面向目标检测的语义分割技术研究与应用
  15. python识别图片文字、并返回文字坐标_PyAutoGui 图片识别+定位+截图函数文档
  16. 文儿结婚生子再被提起!利、文两家互喷,老利回怼:豆豆妈好!文儿暴怒:阴损至极!小洲专场欠礼之人!利、曼等人名利其中!
  17. Unity 3D + Vuforia制作AR人物互动
  18. illustrator插件-拼版功能开发-自动拼版-js脚本开发-ai插件
  19. igxe本地机器人怎么用_IGXE自售机器人第四批申请开启
  20. python中的pass是什么意思_Python中pass的作用与使用教程

热门文章

  1. 做事先做人 做人先立德
  2. 论文笔记5:Noise Reduction of Hyperspectral Imagery Using Hybrid Spatial-Spectral Derivative-Domain Wavel
  3. linux 子接口 非vlan,VLAN之间通过子接口通信配置示例
  4. 如何知道Android机型是32位还是64位
  5. 微带线特性阻抗计算公式_HFSS 计算 微带线 特征阻抗
  6. Java岛屿的最大面积leetcode
  7. eBPF系列学习(4)了解libbpf、CO-RE (Compile Once – Run Everywhe) | 使用go开发ebpf程序(云原生利器cilium ebpf )
  8. Windows设备信息获取:(摄像头,声卡为例)Qt,WindowsAPI对比说明(2)
  9. c语言去除字符串中字母,C语言经典例题100例——C语言练习实例32解答(在字符串中删除指定字母或字符串)...
  10. 第三十九期:1024特别版:向“程序媛们”致敬!