Linux CPUInfo 中的 NUMA 架构理解
一、核心概念与工作原理
二、CPUInfo 与拓扑层级对应关系
三、在 Linux 下快速查看与解读
numactl --hardwareavailable: N nodes、node distances(距离越小越快,跨 Node 通常更慢)lscpuNUMA node(s)、NUMA node0 CPU(s)、Socket(s)、Core(s) per socket、Thread(s) per corels /sys/devices/system/node/node*/cpu 或 cat /sys/devices/system/node/node0/cpulistgrep -c ^processor /proc/cpuinfogrep 'physical id' /proc/cpuinfo | sort -u | wc -lgrep 'physical id' /proc/cpuinfo | sort | uniq -cCPU(s) = Socket(s) × Core(s) per socket × Thread(s) per corelscpu 若显示 CPU(s)=32、Socket(s)=2、Core(s) per socket=8、Thread(s) per core=2,则 2×8×2=32 一致。四、从 CPUInfo 读懂 NUMA 布局的实用技巧
NUMA node(s)=2 且 Socket(s)=2,常见是一一对应;但也可能出现 1 个 Node 包含 2 个 Socket(取决于 CPU/平台),此时应以 lscpu 的 NUMA node0 CPU(s) 列表为准来确认映射关系。Thread(s) per core=2 且 cpu cores 小于 siblings,说明同一物理核心有两个线程。/sys/devices/system/node/nodeX/cpulist 确认 Node → CPU 映射/proc/cpuinfo 中该 CPU 的 physical id(Socket)、core id(Core)、processor(Thread)确定层级。五、性能提示与常见误区
--cpunodebind、--membind)。/proc/sys/kernel/numa_balancing)可在运行时改善局部性,但也要结合应用特性评估。lscpu/sysfs 的 Node-CPU 映射为准。