Вопрос с собеседования · DevOps

Как понять, сколько памяти реально свободно в 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 позволяет защитить критичный процесс или пожертвовать неважным

Подробно

**Вывод 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.

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✗Малое значение free всегда означает нехватку памяти
  • ✗Page cache нельзя вытеснить
  • ✓Ориентир — available, а не free; OOM killer убивает процесс с наибольшим oom_score
  • ✗Ориентир — столбец free; когда он близок к нулю, OOM killer убивает самый новый процесс

Разбор темы

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

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования