Использование памяти, указанное в 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 — это «нечеткое значение». Я предполагаю, что это просто означает, что он сообщает оценку, которая близка к фактическому значению. Даже если это оценка, я не думаю, что она должна быть так далека.

Я использую Linux Mint 18.2 на виртуальной машине VirutalBox.

решение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выходных данных.

Связанный контент