在Linux系统中,NUMA(Non-Uniform Memory Access,非一致性内存访问)节点是指处理器与内存之间的物理连接架构。在NUMA架构中,每个处理器都有自己的本地内存,处理器访问本地内存的速度要比访问远程内存(其他处理器的本地内存或共享内存)快得多。
NUMA节点通常由一组处理器和与之关联的内存组成。在Linux系统中,可以通过查看/proc/cpuinfo文件来获取CPU的相关信息,包括NUMA节点的信息。
在/proc/cpuinfo文件中,可以找到以下与NUMA相关的字段:
physical id:表示处理器的物理ID,用于区分不同的处理器。siblings:表示具有相同物理ID的处理器核心数。cpu cores:表示每个物理ID中的处理器核心数。numa node:表示处理器所属的NUMA节点。例如,以下是一段/proc/cpuinfo文件的部分内容:
processor : 0
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp md_clear flush_l1d
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
bogomips : 1995.25
clflush size : 64
power management:
在这个例子中,physical id为0,表示这是一个物理处理器。siblings为2,表示这个物理处理器有两个核心。core id为0,表示这是第一个核心。cpu cores为2,表示每个物理处理器有两个核心。numa node字段没有显示,但在具有多个NUMA节点的系统中,可以找到这个字段来确定处理器所属的NUMA节点。