商用服务器SMP、NUMA及MPP体系介绍

今天给大家介绍一下常见的三种商用服务器——SMP、NUMA以及MPP。

一、SMP详解

所谓SMP,即Symmetric Multi-processor,对称多处理器结构,x86服务器及其他双路服务器就属于这种结构,PC机、手机和笔记本电脑也属于这种架构。顾名思义,这种服务器架构的特点就是服务器是一个对称结构。服务器的多个CPU之间没有主从关系,他们协同工作,共享内存及总线。SMP架构示意图如下:
在这里插入图片描述
从图中可以看出,SMP体系中各个CPU对内存和总线I/O是共享的,这就必然会造成各个CPU对内存和总线I/O(主要是内存)的资源使用是竞争的,进而必然会导致在这种体系结构下,不可能任意的增加CPU的核数。因为随着CPU核数的增加,这些CPU之间对内存资源的占用冲突也会增大,CPU的很多时间消耗在了对资源的竞争而不是运算工作上,因此导致当CPU数量过多时,会严重的影响效率。经过实验表明,SMP体系的CPU数量以2-4个为宜。

二、NUMA详解

所谓NUMA,即Non-Uniform Memory Access,非一致存储访问结构。NUMA考虑到了SMP的扩展性能差的问题,在体系结构上进行了改进。多个CPU之间不再共享内存,而是被分成了多个Node,这些Node结点之间都有自己的内存和I/O等资源。每个Node结点对自己的内存和I/O资源的访问远远高于对其他Node内存和I/O资源的访问,因此这种结构被称为“非一致存储访问结构”。NUMA体系示意图如下所示:
在这里插入图片描述
NUMA体系的服务器典型示例为一些IBM的小型机,在一些设备上可以支持上百个CPU。NUMA体系的缺陷就在于CPU对其他Node结点资源的访问是非常慢的。因此对这类服务器的调优思路也非常简单,即尽量的使得一个进程总是运行在一个CPU上,避免CPU之前的来回切换。

三、MPP详解

所谓MPP,即Massive Parallel Processing,海量并行处理结构。MPP体系的服务器一般是一些用于科学计算、数据分析等用途的大型机。MPP与NUMA的不同在于,NUMA的不同Node结点间是可以访问对方的资源的,尽管这种访问速度比较慢,但是MPP的不同结点间是完全独立的,每个结点甚至可以运行自己的操作系统。一个结点的CPU完全不可以访问其他结点的CPU,结点之间的信息交流通过互联网络实现。MPP体系结构示意图如下:
在这里插入图片描述
从上图中可以看出,MPP的各个节点本质上就是一个个的SMP,多个SMP之间通过结点网络协同工作,而这个过程被称为数据重分配。当然,这个过程对于用户而言是透明的,在用户的眼中,多个SMP结点共同构成了一台服务器。MPP体系的难点在于调度和平衡各个SMP结点的并行工作过程。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

猜你喜欢

转载自blog.csdn.net/weixin_40228200/article/details/124208526
今日推荐