bka*_*bka 5 memory linux-kernel
我想获取每个 NUMA 节点的“可用内存”量。当处理一整台机器时,通常会像free一样解析 /proc/meminfo (所需的数量是 MemFree + Buffers + Cached)。还存在 /sys/devices/system/node/nodex/meminfo,它似乎显示每个 NUMA 节点的数字。有谁知道这些数字如何与 /proc/meminfo 的内容相关联?我的简单假设是对系统中所有 NUMA 节点的一些数字进行求和,结果等于 /proc/meminfo 中的某个数字。但到目前为止我还没有弄清楚其中的关系,尤其是页面缓存。
proc 的代码位于 中fs/proc/meminfo.c,sysfs 文件的代码位于 中drivers/base/node.c。比较它们可能会给你一些提示。
请注意,您可能永远无法得到 100% 的数字总和,因为您无法自动读取所有文件的内容,因此在读取文件时这些值会发生变化。
通过这两种方法报告的总 RAM 似乎也不一致。对此的一种解释是,它free_init_mem似乎不支持 NUMA,并且会递增total_ram_pages,但不执行任何 NUMA 核算。