23.12. 使用 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=
单元文件选项。
其他资源
- 使用 systemctl 命令将限制设置为应用程序
-
systemd.resource-control (5)
,systemd.exec (5)
和set_mempolicy (2)
手册页。