/proc/vmstat 中的 NUMA 信息
NUMA information in /proc/vmstat
我需要获取一些关于我的应用程序的 NUMA 相关信息(例如,我不能使用 numatop
工具,但我可以使用 numastat
)。因此,我对/proc/vmstat
中的NUMA相关字段有一些疑问,不确定我是否正确理解了它们的含义。
这两个显然与(新)页面的分配有关。
numa_hit
成功分配到的页数
这个节点。
numa_miss
在该节点上分配的页数
因为预期节点上的内存不足。
如何访问已分配的页面?我对在一个节点上分配并从另一个节点访问的页面特别感兴趣。
这两个是我要找的人吗?
numa_hint_faults
numa_hint_faults_local
最后,
numa_pages_migrated
记录有多少页因错放而被迁移。
如果我使用来自 libnuma
的自定义调用(例如 numa_bind
)以强制将进程绑定到节点,这对我有用吗?如果没有自动平衡,是否有任何页面迁移以增加此计数器?
这些指标用于分析 Automatic NUMA Balancing。
平衡器的工作原理如下:
- 当检查中的 进程 未安排时,扫描其地址 space 的 部分 并将每个页面标记为不存在。
这将在进程下次访问这些页面中的地址时产生错误。
这些故障被称为 NUMA 提示故障 (NHF)。
- 当 NHF 发生时,内核将页面迁移到故障本地内存线程。
现在,一个进程可能有多个线程,当平衡器获取地址的一部分时 space 它不知道哪个线程将访问哪个页面,因此它不能排除已经本地的页面其中一个线程正在执行的节点。
例如,如果进程在节点 N1 和 N2 中有两个线程 A e B,平衡器不能跳过页面 X,即使它已经在节点 N1(或 N2)的本地内存中。
所以有时候,balancer会发现自己处于NHF页面already在离线程最近的内存中的情况,这叫做a local NHF.
本地 NHF 占总 NHF 的百分比是对已分配内存拓扑优化程度的估计。
我需要获取一些关于我的应用程序的 NUMA 相关信息(例如,我不能使用 numatop
工具,但我可以使用 numastat
)。因此,我对/proc/vmstat
中的NUMA相关字段有一些疑问,不确定我是否正确理解了它们的含义。
这两个显然与(新)页面的分配有关。
numa_hit
成功分配到的页数 这个节点。numa_miss
在该节点上分配的页数 因为预期节点上的内存不足。
如何访问已分配的页面?我对在一个节点上分配并从另一个节点访问的页面特别感兴趣。 这两个是我要找的人吗?
numa_hint_faults
numa_hint_faults_local
最后,
numa_pages_migrated
记录有多少页因错放而被迁移。
如果我使用来自 libnuma
的自定义调用(例如 numa_bind
)以强制将进程绑定到节点,这对我有用吗?如果没有自动平衡,是否有任何页面迁移以增加此计数器?
这些指标用于分析 Automatic NUMA Balancing。
平衡器的工作原理如下:
- 当检查中的 进程 未安排时,扫描其地址 space 的 部分 并将每个页面标记为不存在。
这将在进程下次访问这些页面中的地址时产生错误。
这些故障被称为 NUMA 提示故障 (NHF)。 - 当 NHF 发生时,内核将页面迁移到故障本地内存线程。
现在,一个进程可能有多个线程,当平衡器获取地址的一部分时 space 它不知道哪个线程将访问哪个页面,因此它不能排除已经本地的页面其中一个线程正在执行的节点。
例如,如果进程在节点 N1 和 N2 中有两个线程 A e B,平衡器不能跳过页面 X,即使它已经在节点 N1(或 N2)的本地内存中。
所以有时候,balancer会发现自己处于NHF页面already在离线程最近的内存中的情况,这叫做a local NHF.
本地 NHF 占总 NHF 的百分比是对已分配内存拓扑优化程度的估计。