图文深度解析: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

架构
全称
核心特点
优势
缺陷
SMP
对称多处理
所有 CPU 共享系统总线、所有内存
架构简单、兼容性好
总线瓶颈,CPU>8 核性能急剧下降
NUMA
非统一内存访问
CPU 分组 + 本地内存,跨组用互联链路
扩展性强,支持多路高密度 CPU
内存访问延迟不一致,需软件优化
3. NUMA 架构拓扑图(物理机
睿智创新RAIZ,一体化IT服务提供商

✅ 核心结论:本地内存访问快,跨 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 NUMAGuest NUMA,是云平台性能优化的核心。

1. 虚拟化 NUMA 拓扑图解

睿智创新RAIZ,一体化IT服务提供商

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 NUMA
  • virsh vcpupin绑定vCPU到物理Core
  • virsh numatune绑定内存到Host Node

(3)典型业务:虚拟化数据库

  • 必须开启 Guest NUMA
  • 禁止 vCPU 跨物理 Node 调度
  • 内存锁定,禁止交换(HugePage+NUMA 绑定)
四、核心区别:物理机 NUMA vs 虚拟化 NUMA
维度
物理机 NUMA
虚拟化 NUMA
架构层级
硬件原生,直接操作 CPU / 内存
硬件 + Hypervisor 抽象,双层 NUMA(Host+Guest)
调度主体
OS 内核 + 应用进程
Hypervisor 调度为主,Guest OS 为辅
配置方式
系统参数、numactl 命令绑定
虚拟化平台配置(开启 Guest NUMA、vCPU 绑定)
延迟表现
本地 / 远程延迟差真实且固定
延迟差被 Hypervisor 稀释,存在虚拟化开销
故障影响
单 Node 故障影响本 Node 进程
可通过 vMotion 迁移,规避物理 NUMA 故障
弹性能力
无弹性,硬件固定
可动态调整 vNUMA 拓扑,适配业务负载
优化门槛
低,直接命令操作即可
高,需兼顾物理层 + 虚拟层双重优化
典型误区
进程跨 Node 跑
关闭 Guest NUMA,大 VM 跨物理 Node 调度

我要咨询