Linux 内存管理深入解析
1. 内存请求与 NUMA 感知
当一个线程在某个 CPU(如 CPU #18)的进程上下文中运行内核或驱动代码时,若请求内核分配一些 RAM,具备 NUMA 感知能力的内核内存管理(MM)层会优先从 NUMA 节点 #2 上的任何空闲 RAM 页帧中满足该请求,因为该节点离发出请求的处理器核心“最近”。若 NUMA 节点 #2 内的任何区域都没有可用的空闲页帧(这种情况不太可能),内核有智能的后备系统,可能会跨互连请求其他节点区域的 RAM 页帧。
2. 节点内的区域
区域可看作 Linux 处理硬件特性和一些软件难题的方式。在 x86 架构(Linux 起源于此)上,硬件特性问题较为常见。区域构成了物理内存层次结构的第二级,它们总是属于某个特定的节点(编号为 0、1、2 等),由物理 RAM 页帧组成。每个节点内的区域会分配一系列的页帧号(PFN)。
可以使用 lstopo 工具图形化查看系统的硬件(CPU)拓扑结构。在 Ubuntu 系统上,可通过以下命令安装:
sudo apt install hwloc
硬件拓扑图形示例可参考: https://en.wikipedia.org/wiki/CPU_cache#/media/File:Hwloc.png
通过
超级会员免费看
订阅专栏 解锁全文
1513

被折叠的 条评论
为什么被折叠?



