如何获取 RAM 中不可交换页面的总数?

如何获取 RAM 中不可交换页面的总数?

我正在尝试调试一些需要固定物理内存的 ML 代码,为了帮助解决此问题,我想弄清楚有多少物理 RAM 包含无法换出的页面(即不可交换的内核页面) 、CUDA 固定页面等)。

具体来说,我认为每个页面都是以下 3 个组之一的成员:

  1. 驻留在物理 RAM 中,但可以换出
  2. 驻留在物理 RAM 中但无法换出
  3. 已从物理 RAM 中换出

我想知道第2组的规模。

我已经查过了并且了解了该free命令,但我认为free只告诉您有关组 1+2 和组 3 的信息。有没有什么方法可以专门隔离 中的组 2 free,或者是否有其他方法可以找出有多少组页面无法换出?

答案1

您可以查看 proc 伪文件系统中的“meminfo”文件。例如cat /proc/meminfo。查找“Unevictable”和“Mlocked”的条目。我认为这就是您正在寻找的。 man proc提供了一些信息,尽管这两个条目尚未在手册页中收到太多文档(至少在我的系统上没有)。

我没有找到通过free命令获取您正在寻找的信息的方法。

/proc/meminfo 可能无法讲述完整的故事,如中所述https://docs.kernel.org/mm/unevictable-lru.html

/proc/meminfo 的 Unevictable 和 Mlocked 数量不包括透明大页中仅由 VM_LOCKED VMA 中的 PTE 映射的部分。

相关内容