web-dev-qa-db-ja.com

cgroupで報告されるメモリ使用量は、freeコマンドとは異なります

Freeコマンドがcgroupと比べてmemの使用数が大きく異なるのはなぜですか?

$ 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を実行しています。

2
offbynull

memory.usage_in_bytesおよびmemory.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にも興味があるかもしれません。

1
Vlad Frolov