Por que o comando free reportaria um número de uso de memória muito diferente do 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
A documentação do cgroups diz que memory.usage_in_bytes é um "valor fuzz". Suponho que isso significa apenas que relata uma estimativa próxima do valor real. Mesmo que seja uma estimativa, não acho que deva estar tão longe.
Estou executando o Linux Mint 18.2 em uma VM VirutalBox.
Responder1
memory.usage_in_bytes
e memory.max_usage_in_bytes
reporte RSS+CACHE, então em termos de sua free
saída:
memory.usage_in_bytes ~= free.used + free.(buff/cache) - (buff)
Você também pode estar interessado em /sys/fs/cgroup/memory/memory.stat
, embora eu ainda não tenha conseguido encontrar/calcular o free.used
valor da /sys/fs/cgroup/memory/memory.stat
saída.