教你快速理解linux中的NUMA节点探测是干什么用的?

想象一个大城市被划分成几个区(比如东区、西区)。每个区有自己的超市(内存),居民(CPU)去本区的超市买东西最快,去其他区的超市会慢一些。

NUMA节点探测,就是Linux系统在开机时做的以下事情:

  1. 发现硬件布局:

    像"市长"一样,检查电脑里有多少个CPU群(比如2组,每组8核)和对应的内存条,确定哪些CPU和内存离得近。

  2. 划分"区":

    把离得近的CPU和内存划为一个"NUMA节点"(比如节点0、节点1)。每个节点内的CPU访问本节点内存很快,跨节点访问会变慢。

  3. 贴标签:

    给每个节点贴上编号(比如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用"本地内存",提升效率。

相关推荐
维吉斯蔡16 小时前
【VS Code / Cursor】文件夹右键快捷打开与文件类型自动关联
开发语言·程序人生·学习方法
jianqiang.xue17 小时前
系统服务层设计:沉淀通用能力,让业务层只专注业务
stm32·单片机·嵌入式硬件·mcu·物联网·esp32
乌萨奇也要立志学C++17 小时前
【Linux】网络基础 从零理解网络通信:局域网、跨网传输与 Socket 预备知识
linux·服务器·网络
luj_176819 小时前
星火科技助力边远地区防病攻坚
c语言·开发语言·c++·经验分享·算法
always_TT19 小时前
【Python 日志记录:logging 模块入门】
开发语言·python·php
RisunJan19 小时前
Linux命令-slabtop(实时显示内核 slab 缓存信息)
linux
无垠的广袤19 小时前
【RA-Eco-RA2T1开发板】介绍、环境搭建、工程测试
单片机·嵌入式硬件·串口通信·uart·开发环境·blink
画面无声19 小时前
STM32的SPI通信原理与练习记录
c语言·stm32·单片机·嵌入式硬件·学习
xcLeigh19 小时前
Go入门:变量声明的五种方式详解
java·开发语言·golang
weixin_4568083819 小时前
【沁恒蓝牙开发】IAP升级流程
c语言·单片机·嵌入式硬件