/proc/vmstat 中的 NUMA 信息

NUMA information in /proc/vmstat

我需要获取一些关于我的应用程序的 NUMA 相关信息(例如,我不能使用 numatop 工具,但我可以使用 numastat)。因此,我对/proc/vmstat中的NUMA相关字段有一些疑问,不确定我是否正确理解了它们的含义。

这两个显然与(新)页面的分配有关。

如何访问已分配的页面?我对在一个节点上分配并从另一个节点访问的页面特别感兴趣。 这两个是我要找的人吗?

最后,

如果我使用来自 libnuma 的自定义调用(例如 numa_bind)以强制将进程绑定到节点,这对我有用吗?如果没有自动平衡,是否有任何页面迁移以增加此计数器?

这些指标用于分析 Automatic NUMA Balancing

平衡器的工作原理如下:

  1. 当检查中的 进程 未安排时,扫描其地址 space 的 部分 并将每个页面标记为不存在。
    这将在进程下次访问这些页面中的地址时产生错误。
    这些故障被称为 NUMA 提示故障 (NHF)。
  2. 当 NHF 发生时,内核将页面迁移到故障本地内存线程

现在,一个进程可能有多个线程,当平衡器获取地址的一部分时 space 它不知道哪个线程将访问哪个页面,因此它不能排除已经本地的页面其中一个线程正在执行的节点。

例如,如果进程在节点 N1 和 N2 中有两个线程 A e B,平衡器不能跳过页面 X,即使它已经在节点 N1(或 N2)的本地内存中。
所以有时候,balancer会发现自己处于NHF页面already在离线程最近的内存中的情况,这叫做a local NHF.

本地 NHF 占总 NHF 的百分比是对已分配内存拓扑优化程度的估计。