Память внутри Linux-контейнеров (LXC)
Проблема Большинство linux утилит, предоставляющие доступ к метрикам ресурсов были созданы до того как появился cgroups (такие как free или top b из procps ). Обычно они считывают метрики по использованию памяти из файловой системы proc: /proc/meminfo, /proc/vmstat, /proc/PID/smaps и др. К несчастью /proc/meminfo, /proc/vmstat и ко. не контейнеризированы. Это к тому, что они не знают о cgroups. Они всегда отображают числа о памяти машины-хоста, что неудобно в современных linux-контейнерах. Процессы внутри контейнера не могут опираться на free, top, и другие программы для того, чтобы определить сколько памяти им доступно, но они подчиняются ограничениям, установленным их cgroups и не могут использовать всю память, доступную в хосте. Это вводит в смятение многих пользователей linux-контейнеров. Почему free говорит, что доступно 32GB ОЗУ, когда как контейнеру позволено использовать только 512MB? С популяризацией технологий, основанных на linux-контейнерах - Heroku , Docke...