教你快速理解linux中的NUMA节点探测是干什么用的?
想象一个大城市被划分成几个区(比如东区、西区)。每个区有自己的超市(内存),居民(CPU)去本区的超市买东西最快,去其他区的超市会慢一些。
NUMA节点探测,就是Linux系统在开机时做的以下事情:
-  发现硬件布局: 
 像“市长”一样,检查电脑里有多少个CPU群(比如2组,每组8核)和对应的内存条,确定哪些CPU和内存离得近。
-  划分“区”: 
 把离得近的CPU和内存划为一个“NUMA节点”(比如节点0、节点1)。每个节点内的CPU访问本节点内存很快,跨节点访问会变慢。
-  贴标签: 
 给每个节点贴上编号(比如Node 0、Node 1),告诉系统:“这是两个独立的小王国,尽量让它们自己管自己的事情”。
举个现实例子:
-  电脑配置:一台服务器有2个CPU插槽(每个插槽8核),每个CPU旁插了2条内存。 - 探测结果: 
    - NUMA节点0:CPU插槽1 + 旁边的2条内存
- NUMA节点1:CPU插槽2 + 旁边的2条内存
 
 
- 探测结果: 
    
-  程序优化: 
 如果一个程序跑在节点0的CPU上,优先用节点0的内存,速度更快;如果用了节点1的内存,速度会下降。
总结:
 NUMA节点探测就是Linux开机时自动发现电脑里“哪些CPU和内存是组团工作的”,并做好标记,后续分配任务时尽量让CPU用“本地内存”,提升效率。
