加载中...

NUMA(Non-Uniform Memory Access,非统一内存访问)是现代多处理器服务器普遍采用的内存体系结构。系统被划分为多个节点(Node),每个节点包含若干 CPU 核心和直连的本地内存;CPU 访问本地内存延迟低、带宽高,访问其他节点内存则需经过处理器间互连(如 Intel UPI、AMD Infinity Fabric),延迟明显更高。它取代了所有 CPU 争抢单一内存总线的 UMA/SMP 架构。
操作系统需感知 NUMA 拓扑:Linux 默认采用首次访问(First-Touch)策略在触发缺页的线程所在节点分配内存,调度器尽量让线程留在其内存所在节点,并提供 numactl、libnuma 等工具做显式绑定。跨节点访问过多会导致吞吐骤降。数据库、JVM 大堆、虚拟化与 DPDK 网络应用都需要 NUMA 亲和性调优。
AMD EPYC 的多芯粒设计使单插槽内部也呈现 NUMA 特征,而 CXL 内存扩展进一步引入无 CPU 的远内存节点,NUMA 感知编程的重要性持续上升。

登录 后参与讨论
暂无讨论,来发表第一条评论吧