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 虛擬機器中執行 Linux Mint 18.2。

答案1

memory.usage_in_bytesmemory.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

相關內容