Как понять, сколько памяти реально свободно в Linux, и что такое OOM killer?
- Почему 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 убивает самый новый процесс
Разбор темы
- Linux — диагностика сервера
С чего начинать, когда сервер ведёт себя плохо, как читать load average, где на самом деле свободная память, кто такие зомби и куда делось место на диске.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.