Linux /proc/meminfo和/sys/devices/system/node/nodex/meminfo之间的关系

5
我想获取每个NUMA节点上的“空闲内存”数量。当处理整台机器时,通常会像free一样解析/proc/meminfo(所需数字为MemFree + Buffers + Cached)。 还存在/sys/devices/system/node/nodex/meminfo,它似乎显示了每个NUMA节点的数字。有没有人知道这些数字如何与/proc/meminfo的内容相关联? 我肤浅的假设是,在系统中为所有NUMA节点汇总某些数字,结果等于/proc/meminfo中的某些数字。但到目前为止,我未能确定这些关系,特别是对于页面缓存。
1个回答

4

proc的代码位于fs/proc/meminfo.c,sysfs文件的代码位于drivers/base/node.c。比较它们可能会给你一些提示。

请注意,由于您无法原子地读取所有文件的内容,因此您很可能永远无法使数字总和达到100%,因为在读取它们时,值将发生更改。

使用这两种方法报告的总RAM大小似乎也存在不一致性。其中一个解释是free_init_mem似乎没有考虑NUMA,并且增加了total_ram_pages但没有进行任何NUMA核算。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接