Получить доступ

Как понять, сколько памяти реально свободно в Linux, и что такое OOM killer?

MiddleLinux и диагностика
Ещё спрашивают так:
  • Почему free показывает, что памяти почти не осталось?
Коротко

Linux использует свободную память под кэш файлов (page cache), поэтому «free» почти всегда мал — смотреть надо на available: сколько можно выделить, вытеснив кэш. Когда память действительно закончилась, OOM killer убивает процесс с наибольшей оценкой (обычно самый большой) — в логах ядра «Out of memory: Killed process».

  • Найти: dmesg -T | grep -i kill, journalctl -k
  • В контейнере OOM срабатывает при превышении лимита cgroup, даже если на хосте память есть
  • Swap спасает от OOM ценой резкого падения производительности

А ещё oom_score_adj позволяет защитить критичный процесс или пожертвовать неважным

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

**Вывод free -h:**

  • used — занято процессами;
  • buff/cache — кэш файлов и буферы: освобождается при нужде;
  • available — оценка доступной памяти с учётом кэша.

Мониторинг по free вместо available даёт ложные алерты.

OOM killer. Ядро выбирает жертву по oom_score (зависит от объёма памяти процесса и oom_score_adj). Процесс получает SIGKILL — без корректного завершения.

Контейнеры: лимит памяти — это cgroup. Превышение → OOM внутри контейнера, в Kubernetes статус OOMKilled, код выхода 137. Для JVM и других рантаймов важно настроить кучу относительно лимита: память процесса больше кучи.

Утечки и рост: ps aux --sort=-rss, smem, метрики RSS процесса во времени; для JVM — дамп кучи.

Что хотят услышать

  • Page cache и available.
  • Как работает OOM killer и где его следы.
  • OOM в контейнере и код 137.

Связанные вопросы

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем