一文快速掌握CPU中SPM与NUMA架构!

本文详细解析了SMP(对称多处理器)架构,特别是UMA和NUMA子架构,与AMP(非对称多处理器)的差异,讨论了SMP扩展能力和局限性,以及NUMA架构如何通过优化内存访问提高系统性能。
摘要由CSDN通过智能技术生成
  • SMP(Symmetric Multiprocessing)架构:即对称多处理器架构,是目前最常见的多处理器计算机架构
  • AMP(Asymmetric Multiprocessing)架构:即非对称多处理器架构,则是与SMP架构相对的概念

SMP架构的多个处理器都是同构的,使用相同架构的CPU;而AMP架构的多个处理器可能是异构的。

  1. SMP架构的多个处理器共享统一内存地址空间;而AMP架构的每个处理器则拥有自己的独立地址空间。
  2. SMP架构的多个处理器通常共享一个操作系统实例;而AMP架构的每个处理器可以有或者没有运行操作系统,每个处理器可以独立运行不同的操作系统。
  3. SMP架构的多个处理器之间可以通过共享内存来协调通信;而AMP则需要提供一种处理器间的通信机制。

在SMP架构中,又可以分为NUMA架构和UMA架构。

一、SMP架构--UMA

SMP (Symmetric Multi Processing),对称多处理系统内有许多紧耦合多处理器,在这样的系统中,所有的CPU共享全部资源,如总线,内存和I/O系统等,操作系统或管理数据库的复本只有一个,这种系统有一个最大的特点就是共享所有资源。多个CPU之间没有区别,平等地访问内存、外设、一个操作系统。操作系统管理着一个队列,每个处理器依次处理队列中的进程。如果两个处理器同时请求访问一个资源(例如同一段内存地址),由硬件、软件的锁机制去解决资源争用问题。

所谓对称多处理器结构,是指服务器中的多个 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 。

我们使用的大部分个人计算机都是SMP架构的UMA架构。

二、NUMA架构

由于 SMP 在扩展能力上的限制,于是开始探究如何进行有效地扩展从而构建大型系统的技术, NUMA 就是这种努力下的结果之一。利用 NUMA 技术,可以把几十个 CPU( 甚至上百个 CPU) 组合在一个服务器内。

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

一般来说,一个CPU插槽对应一个 Node。需要注意的一个特点是,CPU访问本地内存和远程内存耗时差别较大,因此NUAM架构的系统设计程序时,要考虑尽量避免或少访问远程内存,这样才能发挥NUMA CPU架构的优势,否则性能可能大打折扣,一般常用的处理方式是线程绑核操作。

NUMA架构图结构如下所示:

  • 每个CPU核独享L1、L2级缓存,L3级缓存为共享缓存。
  • 一个SOCKET称之为一个NUMA结点,不同NUMA节点之间通过总线连接。
  • 接近NUMA结点的内存成为本地内存,其他NUMA节点的内存称之为远端内存。
  • NUMA节点对本地内存的访问更快。

在Linux系统中查看信息的命令如下:

注意:这要NUMA架构的CPU才会有如下信息。此处CPU中有两个 NUMA Node,每个节点管理16GB内存。

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值