我想获得每个NUMA节点的“可用内存”量。 在处理整个机器时,通常会像 free 那样解析/ proc / meminfo(想要的数字是MemFree + Buffers + Cached)。 还存在/ sys / devices / system / node / nodex / meminfo,它们似乎每个NUMA节点显示数字。有谁知道这些数字如何与/ proc / meminfo的内容相关联?我的琐碎假设是为系统中的所有NUMA节点总结一些数字,结果等于/ proc / meminfo中的某个数字。但到目前为止,我没有弄清楚这些关系,尤其是页面缓存。
答案 0 :(得分:2)
proc的代码在fs/proc/meminfo.c
中,对于drivers/base/node.c
中的sysfs文件。比较它们可能会给你一些提示。
请注意,您可能永远不会将数字加起来100%,因为您无法原子地读取所有文件的内容,因此在您阅读时这些值会发生变化。
通过两种方法报告的总RAM似乎也存在不一致。对此的一种解释是free_init_mem
似乎不是NUMA意识,并且增加total_ram_pages
但不进行任何NUMA会计。