我正在尝试调试一些需要固定物理内存的 ML 代码,为了帮助解决此问题,我想弄清楚有多少物理 RAM 包含无法换出的页面(即不可交换的内核页面) 、CUDA 固定页面等)。
具体来说,我认为每个页面都是以下 3 个组之一的成员:
- 驻留在物理 RAM 中,但可以换出
- 驻留在物理 RAM 中但无法换出
- 已从物理 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 映射的部分。