Как Linux выбирает процессы для "убийства" при нехватке памяти
В ядре Linux существует механизм OOM Killer, который при дефиците оперативной памяти автоматически выбирает и "убивает" процессы для освобождения ресурсов, но несмотря на попытки усовершенствовать его, механизм всё ещё может завершать важные приложения.
Проблема нехватки оперативной памяти на серверах и рабочих станциях решается в Linux специальным компонентом — OOM Killer (Out Of Memory Killer). Его задача – оперативно освободить системные ресурсы, "убивая" наименее приоритетные процессы. Этот механизм возник после инцидента 2004 года, когда разработчик Томас Хабетс обнаружил, что из-за OOM Killer его заблокированный экран оказался разблокирован, поскольку был завершен процесс xlock.
Хотя первоначальное предложение Хабетса о "неприкосновенном" списке процессов не вошло в ядро, разработчики внедрили систему приоритетов, поддержку контрольных групп (cgroups) для изоляции ресурсов и отдельный поток для быстрого освобождения памяти. Эти меры значительно улучшили предсказуемость работы OOM Killer.


Комментарии (0)
Без регистрации. Комментарии проверяются автоматически перед публикацией.
Пока нет комментариев. Будьте первым!