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_bytesRSS+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

関連情報