なぜ 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_bytes
RSS+CACHE をレポートするのでmemory.max_usage_in_bytes
、出力は次のようになります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