27.2. 使用 systemd 配置 NUMA 策略
非统一内存访问(NUMA)是一种计算机内存子系统设计,其中内存访问时间取决于相对于处理器的物理内存位置。
靠近 CPU 的内存比不同 CPU 的本地内存(外部内存)或一组 CPU 之间共享的内存具有更低的延迟(本地内存)。
就 Linux 内核而言,NUMA 策略管理内核为进程分配物理内存页面的位置(例如,在哪些 NUMA 节点上)。
systemd
提供单元文件选项 NUMAPolicy
和 NUMAMask
,以控制服务的内存分配策略。
流程
通过 NUMAPolicy
单元文件选项设置 NUMA 内存策略:
在您选择的服务中检查
NUMAPolicy
单元文件选项的值:$ systemctl show --property <NUMA policy configuration option> <service name>
作为根目录,设置
NUMAPolicy
单元文件选项所需的策略类型:# systemctl set-property <service name> NUMAPolicy=<value>
重新启动服务以应用更改。
# systemctl restart <service name>
要使用 [Manager] 配置选项设置全局 NUMAPolicy
设置:
-
在
/etc/systemd/system.conf
文件中搜索文件的 [Manager] 部分中的NUMAPolicy
选项。 - 编辑策略类型并保存文件。
重新载入
systemd
配置:# systemd daemon-reload
- 重启服务器。
重要
当您配置严格的 NUMA 策略时,例如 bind
,请确保您也正确地设置了 CPUAffinity=
单元文件选项。
其它资源
- systemd 的 NUMA 策略配置选项
-
systemd.resource-control (5)
,systemd.exec (5)
和set_mempolicy (2)
手册页。