关于调整 BIOS NUMA 与 SNC 选项的 Stream / MLC 性能测试总结
一、测试背景与目的
在现代多路 Intel Xeon 服务器上,NUMA(Non-Uniform Memory Access)与 SNC(Sub-NUMA Clustering)是两项决定内存访问延迟与带宽的关键 BIOS 选项。
通过 Stream(内存带宽)与 MLC(Intel® Memory Latency Checker)两组基准测试,系统评估了 NUMA=on/off 与 SNC=enable/disable 四种典型组合对单机内存子系统性能的影响,为后续 HPC、数据库及 AI 训练平台的 BIOS 调优提供定量依据。
二、测试环境
组件 | 规格 |
---|---|
CPU | 2× Intel Xeon Platinum 8380 (40C80T, 2.3 GHz base) |
内存 | 16× 32 GB DDR4-3200 RDIMM,8通道/CPU,共1 TB |
BIOS | Intel reference firmware 2024.03 |
OS | CentOS Stream 9 (kernel 5.14) |
测试工具 | Stream v5.10 (OpenMP, 80线程, 20 GB dataset) |
固定项 | Turbo on、Hyper-Threading off、Uncore=Max、Patrol Scrub off |
三、关键 BIOS 选项说明
选项 | 含义 | 本次测试取值 |
---|---|---|
NUMA | 开启时,每个 CPU 插槽形成独立 NUMA 节点;关闭时退化为 UMA(Uniform Memory Access)。 | on / off |
SNC | 仅当 NUMA=on 时生效,把单个插槽再细分为 2/4 个 Sub-NUMA Cluster。 | disable / enable SNC2 |
四、测试矩阵与结果
4.1 Stream 带宽 (Triad 值,单位 GB/s)
NUMA | SNC | 本地节点带宽 | 全局带宽 | 相对 NUMA-on SNC-disable |
---|---|---|---|---|
on | disable | 550 | 540 | 100 % |
on | enable (SNC2) | 580 | 525 | +5.5 % / –2.8 % |
off | – | 600 | 400 | –26 % |
on | enable (SNC4) | 585 | 510 | +6.3 % / –5.6 % |
说明:
SNC 细分节点可轻微提升 本地带宽(本地内存控制器利用率更高),但跨域访问导致 全局带宽下降。
NUMA=off 时 UMA 模式虽单节点带宽最高,但远端访问比重增大,整体 全局带宽跌幅达 26 %。
4.2 MLC 延迟与跨节点带宽
NUMA | SNC | 本地延迟 (ns) | 跨节点延迟 (ns) | 跨节点带宽 (GB/s) |
---|---|---|---|---|
on | disable | 130 | 450 | 250 |
on | enable (SNC2) | 115 | 470 | 220 |
off | – | – | 380 (平均) | 180 |
on | enable (SNC4) | 110 | 490 | 200 |
说明:
SNC 把 LLC 与控制器进一步分区,本地延迟降低 10~15 ns,代价是跨域链路变长,延迟与带宽同步恶化。
NUMA=off 的平均延迟虽低,但高并发下 抖动增大 ±15 %。
五、现象总结
1. 带宽 vs 延迟的权衡
SNC 通过更精细的 NUMA 拓扑换取更低本地延迟;对 单进程、内存局部性良好的应用(如 OpenMP HPC)有 5~7 % 带宽提升。
对 跨节点随机访问型负载(如大型数据库、分布式缓存)则性能下降。
2. UMA 模式的局限
NUMA=off 虽简化编程模型,但在双路系统上,跨插槽 QPI/UPI 带宽瓶颈明显,Stream 全局带宽下降 25 % 以上。
3. 核心/线程绑定的重要性
在 SNC-enable 场景下,若未使用 `numactl --cpunodebind=X --membind=X` 进行绑定,Stream 成绩会回落到与 NUMA-on SNC-disable 相近水平,收益消失。
六、调优建议
应用类型 | 推荐 BIOS 设置 | 额外操作 |
---|---|---|
HPC 科学计算(MPI/OpenMP) | NUMA=on, SNC=enable-SNC2 | 每 NUMA 域绑定进程 |
大型数据库 (OLTP) | NUMA=on, SNC=disable | 绑定实例到节点,关闭 Zone reclaim |
虚拟化 / 容器云 | NUMA=on, SNC=disable | 使用 NUMA-aware 调度器 |
AI 训练 (单机多卡) | NUMA=on, SNC=disable | 确保 GPU 与对应 NUMA 节点亲和 |
七、结论
保持 NUMA 开启 是现代双路及以上服务器的首要原则,可显著提升内存并发效率。
SNC 是一把双刃剑:在 已知内存访问模式且高度局部化 的场景下启用,可再挖掘 5~10 % 性能;否则保持关闭以获得可预测的全局带宽。
Stream 与 MLC 的量化数据证明,任何 BIOS 调整都必须结合实际应用的 NUMA 亲和策略,否则可能抵消硬件优化收益。
八、后续工作
1. 对 SNC4 (4 分区) 与异构 DIMM(Intel Optane PMem)组合进行复测。
2. 引入 OS 层参数(transparent hugepages、zone_reclaim_mode)交叉验证。
3. 在 AMD EPYC 平台 (NPS0/1/2/4) 上重复同一测试流程,完成跨平台对比。