cgroup 中报告的内存使用情况与 free 命令不同

cgroup 中报告的内存使用情况与 free 命令不同

为什么 free 命令报告的内存使用量数字与 cgroup 报告的有很大不同?

$ free -b 
              total        used        free      shared  buff/cache   available
Mem:     2096914432   520863744  1112170496    35389440   463880192  1356828672
Swap:    2145382400           0  2145382400

$ cat /sys/fs/cgroup/memory/memory.usage_in_bytes 
857239552

cgroups 的文档称,memory.usage_in_bytes 是一个“模糊值”。我猜这只是意味着它报告的估计值接近实际值。即使它是一个估计值,我认为它不应该相差这么远。

我在 VirutalBox VM 中运行 Linux Mint 18.2。

答案1

memory.usage_in_bytesmemory.max_usage_in_bytes报告RSS + CACHE,因此就您的free输出而言:

memory.usage_in_bytes ~= free.used + free.(buff/cache) - (buff)

您可能还对此感兴趣/sys/fs/cgroup/memory/memory.stat,但我仍然无法free.used/sys/fs/cgroup/memory/memory.stat输出中找到/计算值。

相关内容