Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
A.13. numad
numad 是一个自动 NUMA 关联性管理守护进程。它监控系统中 NUMA 拓扑和资源使用情况,以便动态改进 NUMA 资源的分配和管理。
请注意,当启用 numad 时,其行为会覆盖自动 NUMA 平衡的默认行为。
A.13.1. 从命令行使用 numad
要将 numad 用作可执行文件,请运行:
# numad
在 numad 运行时,其活动记录在
/var/log/numad.log
中。它将运行直到使用以下命令停止:
# numad -i 0
停止 numad 不会删除它对提高 NUMA 关联性所做的更改。如果系统使用显著的变化,再次运行 numad 会调整关联性,以便在新条件下提高性能。
要将 numad 管理限制到特定进程,请使用以下选项启动它:
# numad -S 0 -p pid
- -p pid
- 此选项将指定的 添加到明确包含列表中。在满足 numad 进程信号阈值前,指定的进程不会被管理。
- -S 0
- 这会将进程扫描类型设置为
0,
这会将 numad 管理限制为显式包含的进程。
有关可用 numad 选项的详情,请参考 numad 手册页:
$ man numad
A.13.2. 使用 numad 作为服务
虽然 numad 作为服务运行,它会尝试根据当前的系统工作负载动态调整系统。其活动记录在
/var/log/numad.log
中。
要启动该服务,请运行:
# systemctl start numad.service
要使服务在重启后保持有效,请运行:
# chkconfig numad on
有关可用 numad 选项的详情,请参考 numad 手册页:
$ man numad
A.13.3. 预放置公告
numad 提供了一个预放置建议服务,可由各种作业管理系统查询,为进程提供 CPU 和内存资源的初始绑定。无论 numad 作为可执行文件还是服务运行,这个预替换建议都可用。
A.13.4. 使用 KSM 的 numad
如果在 NUMA 系统上使用 KSM,请将
/sys/kernel/mm/ksm/merge_nodes
参数的值更改为 0,
以避免跨 NUMA 节点合并页面。否则,KSM 会增加远程内存访问,因为它跨节点合并页面。此外,在大量跨节点合并后,内核内存核算统计最终可能会相互冲突。因此,在 KSM 守护进程合并多个内存页面后,numad 可能会成为可用内存的正确数量和位置。
仅当您在系统上过量使用内存时,KSM 才有意义。如果您的系统有足够的可用内存,可以通过关闭和禁用 KSM 守护进程来实现更高的性能。