You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

关于双Socket NUMA系统核心ID交错分布的技术咨询

关于双Socket NUMA系统核心ID交错分布的技术咨询

嗨,我来帮你搞清楚这个核心ID分布的问题~

这种看似“不连续”的核心编号方式,其实是由你的Intel Xeon处理器硬件设计和BIOS的核心编号策略共同决定的,具体拆解如下:

  • 处理器硬件分组架构:你使用的Intel Xeon Gold 6458Q属于Sapphire Rapids架构,每个物理Socket里的32个物理核心被划分成了两个独立的核心集群(Tile/Sub-NUMA Cluster),每集群包含16个核心。这种分组设计是为了优化内存访问效率——同一集群内的核心共享更多的缓存资源与内存控制器带宽,能降低延迟。
  • 交错式核心编号策略:你的系统BIOS应该启用了交错(Interleaved)核心编号模式(而非连续编号模式)。在这种模式下,系统会先给两个Socket的第一个核心集群依次编号:Socket0的第一集群16核对应ID 0-15,Socket1的第一集群16核对应ID 16-31;随后再给两个Socket的第二个核心集群编号:Socket0的第二集群16核对应ID 32-47,Socket1的第二集群16核对应ID 48-63。这就导致了NUMA0(对应Socket0)的核心ID呈现0-15&32-47的分布。
  • 无关参数的说明:你提到的BIOS关闭超线程,只会让每个物理核心对应一个逻辑CPU,不会改变核心的编号规则;而启动参数numa_balancing=disable只是关闭了内核的NUMA自动负载均衡功能,和核心编号逻辑完全没有关联。

如果你想更直观地验证NUMA节点与核心的对应关系,可以执行以下命令查看:

numactl --hardware

或者:

lscpu | grep -A5 NUMA

备注:内容来源于stack exchange,提问作者Eric

火山引擎 最新活动