图文深度解析:NUMA 到底是什么?物理机 vs 虚拟化场景应用与区别
2026-03-20 09:30:15
RAIZ
很多人对服务器的NUMA概念不是很理解,就用结构化图文 + 实战场景帮你彻底讲透 NUMA,覆盖原理、物理机部署和虚拟化的核心区别,全是生产环境能用的干货。
一、NUMA 是什么?
1. 核心定义
NUMA(Non-Uniform Memory Access,非统一内存访问)是一种多处理器服务器的内存架构,解决传统 SMP(对称多处理)架构在 CPU 核心增多后,内存总线带宽瓶颈、访问延迟不一致的问题。
简单说:CPU 不共享一根总线访问所有内存,而是就近访问本地内存,远程内存通过互联链路访问。
2. 关键对比:SMP vs NUMA

✅ 核心结论:本地内存访问快,跨 Node 远程访问慢,这是 NUMA 所有优化的核心依据。
4. 基础术语(工程师必知)
NUMA Node:CPU + 本地内存的最小单元(物理服务器通常 1 颗 CPU=1 个 Node)
Local Memory:本 Node 内的内存,延迟最低
Remote Memory:其他 Node 的内存,延迟高 10%~50%+
UPI/QPI:Intel CPU 的 Node 间互联总线(新一代 UPI 替代 QPI)
二、物理机场景:NUMA 的实战应用与优化
物理机(如 MySQL、Oracle、Hadoop、Redis)是 NUMA 优化的原生场景,直接操作硬件层。
1. 物理机 NUMA 拓扑(2 路 Intel 服务器标准)
2 颗物理 CPU → 2 个 NUMA Node 每颗 CPU 直连本地内存槽位 Node 间通过 UPI 链路通信
2. 物理机核心应用场景
(1)数据库场景(MySQL/Oracle)
策略:进程绑定 NUMA Node,内存本地化 操作: numactl --cpunodebind=0 --membind=0 mysqld收益:避免跨 Node 访问,TPCC 性能提升 10%~30%
(2)高性能计算 HPC / 缓存服务(Redis)
策略:单实例独占 1 个 NUMA Node 收益:极低延迟,避免 Node 间调度抖动
(3)大数据节点(HDFS/ES)
策略:多实例分 Node 部署(ES1 绑 Node0,ES2 绑 Node1) 收益:资源隔离,避免跨 Node 流量抢占 UPI 带宽
三、虚拟化场景:NUMA 的应用(VMware/KVM 为主)
虚拟化层会抽象、透传 NUMA 架构,分为Host NUMA和Guest NUMA,是云平台性能优化的核心。
1. 虚拟化 NUMA 拓扑图解

2. 虚拟化两大核心概念
(1)Host NUMA
物理服务器本身的 NUMA 架构,Hypervisor 的调度基础。
(2)Guest NUMA
虚拟机内部呈现给 OS 的 NUMA 拓扑,需手动配置(vCPU>8 核建议开启)。
3. 虚拟化场景核心应用
(1)VMware 优化要点
开启CPU / 内存热插拔兼容 开启Host NUMA Affinity vCPU、vMem 配置不跨物理 NUMA Node(如 2 路服务器,VM 最大 16 核 64G,不跨 Node)
(2)KVM 优化要点
启动参数添加 -numa,配置 Guest NUMAvirsh vcpupin绑定vCPU到物理Core virsh numatune绑定内存到Host Node
(3)典型业务:虚拟化数据库
必须开启 Guest NUMA 禁止 vCPU 跨物理 Node 调度 内存锁定,禁止交换(HugePage+NUMA 绑定)