首页/云/云平台与虚拟化速查/vCPU 超分与 NUMA 绑定
虚拟化基础63 条

vCPU 超分与 NUMA 绑定

vCPU 是调度到物理核上的执行单元:超分比与绑定策略影响性能;多插槽大内存虚机还涉及 vNUMA,与物理 NUMA 节点错位时会损失内存带宽。

云平台与虚拟化速查云更新于 2026-10-13

是什么

虚机的 vCPU 最终是调度到物理核心上执行的时间片,因此超分比、绑定策略与内存访问路径都直接影响性能。超分比是 vCPU 总数与物理线程数之比:比值高能提高密度,但延迟敏感业务会出现抖动。另一条容易忽略的线是 NUMA:大规格虚机的内存被拆到多个节点上,跨节点访问会损失带宽,需要把虚机与宿主节点对齐。

基本信息

超分比vCPU 总数与物理线程数之比,按业务类型分别设定
亲和性把 vCPU 绑定到指定物理核,减少跨核调度开销
节点绑定控制虚机内存只在指定节点分配,避免跨节点访问
拓扑对齐大规格虚机尽量让虚拟拓扑与宿主节点结构一致
查看方式在宿主上查看节点拓扑与虚机的绑定情况

典型使用场景

  • 规划虚机规格:按宿主节点的核心数与内存容量决定单台虚机上限
  • 延迟敏感业务:给数据库与实时计算类虚机做绑定,减少调度抖动
  • 高密度环境:为测试与开发虚机放宽超分,生产虚机保持低超分
  • 性能不达标排查:确认是否因为跨节点访问内存导致带宽不足
  • 扩容前评估:计算现有超分比,判断还能加多少虚机而不影响稳态

查看拓扑并设置绑定

查看拓扑并设置绑定
numactl -H                         # 查看节点数量、各节点内存与距离
virsh vcpupin vm1                  # 查看虚机各 vCPU 当前的物理核绑定
virsh vcpupin vm1 0 0-3            # 把 0 号 vCPU 绑定到 0-3 号物理核
# 严格模式:只在指定节点上分配内存,避免跨节点
virsh numatune vm1 --mode strict --nodeset 0
virsh numatune vm1                 # 复核绑定结果

关键概念

概念含义规划要点
超分比虚拟核心总数与物理线程总数之比延迟敏感业务保持在低比值,测试环境可放宽
vCPU 亲和把虚拟核心固定到物理核心减少迁移与缓存失效,但会限制调度灵活性
节点绑定限制内存只在指定节点分配大内存虚机收益明显,小规格虚机收益有限
虚拟拓扑虚机看到的插槽与核心结构与宿主结构错位时虚机内部会产生跨节点访问
内存带宽节点内可用的内存吞吐能力带宽不足时表现为计算单元未被充分利用
判断是否受 NUMA 影响,看的是虚机规格与宿主节点的关系:单台虚机核心数超过单个节点的核心数时,必然跨节点,此时要么缩小规格,要么接受带宽损失。
把绑定做成大范围独占,会让宿主失去调度弹性:一旦某台虚机负载下降,被绑定的核心无法给其他虚机使用,整体利用率反而降低。

易错点

  • 盲目提高超分比例,延迟敏感业务出现明显抖动却找不到原因
  • 忽略节点结构,大规格虚机跨节点访问内存,带宽达不到预期
  • 绑定设置过死,宿主失去调度弹性,整体资源利用率下降
  • 只在虚机内部调优,从不核对宿主侧的超分与绑定状态,方向就跑偏了

数据来源与参考

  • libvirt 文档:CPU 与 NUMA 调优
  • Red Hat 文档:NUMA 与虚拟化
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌