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

off*_*ull 7 linux memory-usage cgroup

为什么 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
Run Code Online (Sandbox Code Playgroud)

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

我在 VirutalBox 虚拟机中运行 Linux Mint 18.2。

小智 6

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

memory.usage_in_bytes ~= free.used + free.(buff/cache) - (buff)
Run Code Online (Sandbox Code Playgroud)

您可能也对 感兴趣/sys/fs/cgroup/memory/memory.stat,尽管我仍然无法找到/计算输出free.used的值/sys/fs/cgroup/memory/memory.stat