玩转CPU Topology
这篇讲的是CPU拓扑结构,作者从NUMA和SMP的概念对比切入,深入解释了现代多处理器系统的设计逻辑——NUMA架构中内存访问时间因位置而异,本地内存访问更快,而SMP则让所有处理器共享同一内存,适用于规模较小的系统。文章接着梳理了Socket(物理CPU封装)、Core(处理器核心)和Logical Processor(通过超线程技术虚拟的逻辑核心)之间的关系:一个NUMA节点包含多个Socket,每个Socket集成了多个Core,开启超线程后,操作系统会将每个Core视为两个Logical Processor,从而提升任务并行度。 作者以一台Red Hat Enterprise Linux 5.4系统为例,演示了如何实际查看这些拓扑信息。例如,使用numactl -hardware命令可以获取NUMA节点数量、内存大小和访问成本(本地访问成本10 vs 跨节点访问成本20);通过/sys/devices/system/node/目录能深入查看节点细节;对于Socket和Core,/proc/cpuinfo中的physical id和core id字段提供了关键数据——该系统有两个Socket,每个Socket有四个Core,开启HT后逻辑处理器数量从8个增至16个。文章还指出,CPU缓存(Cache)的详细信息需要通过sysfs获取,而cpuinfo中的cache size可能不够