SMP/NUMA/MPP简介

文章介绍了SMP架构中处理器共享内存导致的性能瓶颈,以及NUMA架构如何通过CPU直连内存控制器提升性能,但存在跨节点访问慢的问题。MPP系统则采用大量松耦合处理单元,不共享资源,每个单元有自己的操作系统和数据库实例。
摘要由CSDN通过智能技术生成

        SMP(Symmetric Multi-Processor)对称多CPU:

       顾名思义, 在SMP中所有的处理器都是对等的, 它们通过总线连接共享同一块物理内存,这也就导致了系统中所有资源(CPU、内存、I/O等)都是共享的,当我们打开服务器的背板盖,如果发现有多个cpu的槽位,但是却连接到同一个内存插槽的位置,那一般就是smp架构的服务器,一般pc、笔记本、手机还有一些老的服务器都是这个架构,可以发现一个特点就是cpu个数比较少。   各CPU共享相同的物理内存,每个 CPU访问内存中的任何地址所需时间是相同的, 由于每个CPU必须通过相同的内存总线访问相同的内存资源,因此随着CPU数量的增加,内存访问冲突将迅速增加,最终会造成CPU资源的浪费,使 CPU性能的有效性大大降低。

        NUMA(Non-Uniform Memory Access) 非一致性内存访问;

        计算机早期,内存控制器还没有整合进 CPU,所有的内存访问都需要经过北桥芯片来完成。CPU 通过前端总线(FSB,Front Side Bus)连接到北桥芯片,然后北桥芯片连接到内存——内存控制器集成在北桥芯片里面。在该架构下CPU 和内存之间的通信全部都要通过前端总线,而提高性能的方式,就是不断地提高 CPU、前端总线和内存的工作频率。

        不断提高频率的方式来提供性能是行不通的:

        插个小曲:物理定律无法违背,温度,制程,功耗均是制约条件之一,疯狂的提高主频,只会使发热量剧增。摩尔定律和登纳德缩放定律说明可以不断缩小晶体管尺寸,并且在CPU中容纳更多晶体管,而功耗基本不变。

        于是numa随之诞生:

         CPU 厂商把内存控制器集成到 CPU 内部,一般一个 CPU socket 会有一个独立的内存控制器;每个 CPU scoket 独立连接到一部分内存,这部分 CPU 直连的内存称为本地内存;CPU 之间通过 QPI(Quick Path Interconnect) 总线进行连接。CPU 可以通过 QPI 总线访问不和自己直连的远程内存。

        如果说smp 相当于多个cpu 连接一个内存池导致请求经常发生冲突的话,numa 就是将cpu的资源分开,以node 为单位进行切割,每个node 里有着独有的core ,memory 等资源,这也就导致了cpu在性能使用上的提升,设计原理就是访问本地资源(本地内存、I/O槽口)的速度远远高于访问远地资源(其他node的资源)的速度,但是同样存在问题就是多个node 之间的资源交互非常慢,当cpu增多的情况下,性能提升的幅度并不是很高,无法实现性能的现象增加。所以可以看到很多明明有很多core的服务器却只有2~4个node区。

      MPP (Massive Parallel Processing) :

        大规模并行处理系统,这样的系统是由许多松耦合的处理单元组成的,要注意的是这里指的是处理单元而不是处理器。每个单元内的CPU都有自己私有的资源,如总线,内存,硬盘等。在每个单元内都有操作系统和管理数据库的实例复本。这种结构最大的特点在于不共享资源。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

a2591748032-随心所记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值