NUMA (Non-Uniform Memory Access) 内存管理是关键的架构特性,旨在通过解决多路服务器固有的内存访问延迟来提升系统性能。该功能通过智能地将内存区域映射到特定的 CPU 节点,从而最大限度地减少跨节点的数据传输,并提高吞吐量。它为高性能计算环境提供了基础机制,在这些环境中,传统的统一内存访问模型在处理高负载时无法有效扩展。
系统初始化时,会生成一个拓扑图,该图标识所有CPU节点及其对应的物理内存区域。
一种绑定算法,根据进程的内存访问模式和当前节点的负载,计算出最佳的资源分配策略。
硬件寄存器会被更新,以执行由NUMA策略定义的逻辑地址到物理地址的转换规则。
通过硬件层面的分析,识别活动中的CPU节点及其对应的内存控制器。
分析进程的内存访问模式,以预测局部性需求。
计算最佳绑定策略,以最大限度地减少跨节点内存传输。
通过更新硬件页表和内核映射,应用计算出的策略。
代理程序扫描硬件寄存器,以构建 CPU 节点和内存控制器的动态映射。
算法会分析工作负载的特性,以确定为每个进程分配最合适的节点。
内核模块会更新页表项,以便在可能的情况下,将内存请求直接导向本地节点。