NUMA介绍

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

早期CPU访问内存结构

UMA1Uniform Memory Access, 一致性内存访问

在这里插入图片描述

早期的计算机内存控制器还没有整合进 CPU所有的内存访问都需要经过北桥芯片来完成。
在 UMA 架构下CPU 和内存之间的通信全部都要通过前端总线。而提高性能的方式就是不断地提高 CPU、前端总线和内存的工作频率。
总线模型保证了 CPU 的所有内存访问都是一致的不必考虑不同内存地址之间的差异。

而随着计算机的发展CPU 性能的提升开始从提高主频转向增加 CPU 数量多核、多 CPU。

但是由于CPU核数过多而每核访问内存时都要通过前端总线而前端总线只有一个造成的问题是很多CPU同时竞争总线这样的话前端总线就成为了性能屏障

NUMA2Non-Uniform Memory Access, 非一致性内存访问

在这里插入图片描述
上图就是两个NUMA节点Node每个节点直接连接一部分内存两个节点之间有专门的的inter-connect通道。各节点直接访问自己管理的内存叫本地内存Local Access通过inter-connect通道访问其他分厂管理的内存叫做**远程内存(**Remote Access)。很显然前者的访问速度要比后者快得多所以这也是这项技术名字的由来非一致性内存访问。

在有了NUMA技术后因为每个线程对应CPU中的一个core所以操作系统的线程调度管理部门调度线程时尽量一直在一个NUMA节点要不然的话建立的缓存就很容易失效。
而为了能得到更快的内存访问速度操作系统的内存管理部门制定了一个内存分配策略线程在哪个NUMA节点内执行那就把内存分配到那个节点直接连接的内存中避免跨节点的内存访问访问远程内存比较慢。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6