為什麼 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 虛擬機器中執行 Linux Mint 18.2。
答案1
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
。