内存交织分三层:channel级需对称插槽启用双通道;bank级默认自动开启,提升单条并发;node级应禁用以避免numa跨节点访问导致延迟倍增。

多路服务器中配置内存交织(Interleaving),关键在于区分三种不同层级的交织机制:Channel Interleaving(通道级)、Bank Interleaving(Bank级)和 Node Interleaving(NUMA节点级)。它们作用对象、启用条件和性能影响各不相同,不能混为一谈,也不能一概开启或关闭。
Channel Interleaving(通道交织)
这是双/多通道内存带宽提升的核心机制,需硬件与BIOS协同启用:
- 必须在对应通道插槽安装容量相等、类型一致(如均为RDIMM)、频率相同的内存条;单通道或不对称插法将无法激活
- BIOS路径通常为:Advanced → Memory Configuration → Channel Interleaving,选项多为 Auto 或 Enabled
- 默认 Auto 即可,系统会自动识别双通道结构并启用;若手动设为 Disabled,则强制降为单通道模式,带宽减半
- 注意:该功能与内存是否插满无关,只取决于“对称通道内是否匹配”
Bank Interleaving(Bank交织)
它利用内存颗粒内部多个Bank交替刷新与访问的特性,提升单条内存的并发效率:
- 无需用户干预,现代服务器BIOS默认设为 Auto(即开启),且不依赖插槽位置或通道数
- 即使单条内存、非对称容量(如1GB+2GB)、甚至不同时序参数,只要频率一致,Bank交织仍可工作
- 它不是双通道,而是“同一通道内多Bank轮转”,对延迟敏感型应用(如实时数据库)有细微优化
- 除非调试特定稳定性问题,否则无需修改,默认即可
Node Interleaving(NUMA节点交织)
这是多路(尤其是鲲鹏920、双路Intel/AMD)服务器中最易误配的关键项,直接影响NUMA感知应用性能:
- 路径通常为:Advanced → NUMA Configuration → Node Interleaving
- 默认应设为 Disabled;开启后,系统将跨NUMA节点均匀分配内存页,掩盖真实NUMA拓扑
- 后果是:本地内存访问变远程,延迟上升2–3倍,带宽下降明显,尤其对Redis、DPDK、HPC类应用伤害极大
- 若应用本身不支持NUMA绑定(如老旧Java服务),应在OS层用
numactl --interleave=all控制,而非在BIOS关NUMA
特别提醒:内存 Hole Remapping 与地址映射
当总内存 ≥4GB 且运行64位系统时,需确认 BIOS 中 Memory Hole Remapping 或类似选项(如 Above 4G Decoding)已启用:
- 它让内存控制器把被PCIe设备占用的高32位地址空间(如3.5–4GB段)重映射到4GB以上区域
- 若未启用,BIOS可能只识别出不到4GB可用内存,即使物理插了32GB也显示异常
- 该设置与交织无关,但常被误认为“内存没认全”,务必在内存配置前检查











