22.12. 使用 systemd 配置 NUMA 策略

非统一内存访问 (NUMA) 是一种计算机内存子系统设计,其中内存访问时间取决于处理器的物理内存位置。

接近 CPU 的内存的延迟(外部内存)比其他 CPU 本地内存低,或者在一组 CPU 间共享。

就 Linux 内核而言,NUMA 策略管理内核为进程分配物理内存页面的位置(例如,在哪些 NUMA 节点上)。

systemd 提供单元文件选项 NUMAPolicyNUMAMask,以控制服务的内存分配策略。

流程

要通过 NUMAPolicy 单元文件选项设置 NUMA 内存策略:

  1. 在您选择的服务中检查 NUMAPolicy 单元文件选项的值:

    $ systemctl show --property <NUMA policy configuration option> <service name>
  2. 作为根目录,设置 NUMAPolicy 单元文件选项所需的策略类型:

    # systemctl set-property <service name> NUMAPolicy=<value>
  3. 重新启动服务以应用更改。

    # systemctl restart <service name>

要使用 [Manager] 配置选项设置全局 NUMAPolicy 设置:

  1. /etc/systemd/system.conf 文件中为文件的 [Manager] 部分中的 NUMAPolicy 选项进行搜索。
  2. 编辑策略类型并保存文件。
  3. 重新载入 systemd 配置:

    # systemd daemon-reload
  4. 重启服务器。
重要

当您配置严格的 NUMA 策略时,例如 bind,请确保也适当地设置 CPUAffinity= 单元文件选项。

其他资源