Repolode
rfjakob

rfjakob/earlyoom

Лёгкий пользовательский демон для Linux, который завершает самый крупный процесс, прежде чем нехватка памяти и swap приведёт к зависанию системы.

Звёзды
4,351
Форки
215
Открытые issues
28
Последний коммит
позавчера

Что это?

earlyoom — небольшой демон для Linux, который следит за доступной памятью и свободным swap и завершает процесс до того, как сработает встроенный в ядро OOM killer. Обычно OOM killer ждёт, пока система почти перестанет отвечать, а до этого система активно использует swap и сбрасывает кэши. earlyoom работает в пользовательском пространстве и проверяет память до десяти раз в секунду, ориентируясь на показатель «available», а не «free».

По умолчанию, когда доступная память и свободный swap опускаются ниже 10% от общего объёма, earlyoom отправляет SIGTERM процессу с наибольшим oom_score. Пороговые значения, этап с SIGKILL и выбор процесса можно настроить параметрами командной строки, например --prefer, --avoid, --ignore и --sort-by-rss. Демон написан на C без зависимостей и блокирует свою память с помощью mlockall(), чтобы продолжать работу при нехватке памяти.

earlyoom можно собрать из исходников командой make, зарегистрировать как службу systemd или init.d либо установить из пакетов для Debian, Ubuntu, Fedora и Arch. Дополнительные уведомления d-bus и скрипты для каждого завершения процесса (-N и -P) позволяют реагировать на такие завершения.

Ключевые возможности

  • 01Проверяет доступную память и свободный swap до 10 раз в секунду.
  • 02Сначала отправляет SIGTERM, затем SIGKILL; пороговые значения настраиваются.
  • 03Выбирает процессы по oom_score или по RSS с помощью --sort-by-rss.
  • 04Поддерживает регулярные выражения в --prefer, --avoid и --ignore для управления выбором процессов.
  • 05Дополнительные уведомления d-bus и скрипты до и после завершения процесса.
  • 06Написан на чистом C без зависимостей; есть режим --dryrun.

Сценарии использования

  • Поддержание отзывчивости настольного компьютера или ноутбука, если браузер или IDE из-за утечки памяти потребляет слишком много ресурсов.
  • Защита общих Linux-серверов и машин для сборки от процессов, потребляющих чрезмерно много ресурсов.
  • Работа на виртуальных машинах с небольшим объёмом памяти или одноплатных компьютерах, где часто возникает активное использование swap.
  • Запуск оповещений или скриптов очистки при каждом завершении процесса из-за нехватки памяти.

Темы

Частые вопросы

Что такое earlyoom?
Лёгкий пользовательский демон для Linux, который завершает самый крупный процесс, прежде чем нехватка памяти и swap приведёт к зависанию системы. earlyoom — небольшой демон для Linux, который следит за доступной памятью и свободным swap и завершает процесс до того, как сработает встроенный в ядро OOM killer. Обычно OOM killer ждёт, пока система почти перестанет отвечать, а до этого система активно использует swap и сбрасывает кэши. earlyoom работает в пользовательском пространстве и проверяет память до десяти раз в секунду, ориентируясь на показатель «available», а не «free».
earlyoom можно использовать бесплатно? Какая у него лицензия?
earlyoom распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
earlyoom всё ещё поддерживается?
Активно поддерживается. Последний коммит в earlyoom — 19 окт. 2026 г..
Для чего можно использовать earlyoom?
Поддержание отзывчивости настольного компьютера или ноутбука, если браузер или IDE из-за утечки памяти потребляет слишком много ресурсов. Защита общих Linux-серверов и машин для сборки от процессов, потребляющих чрезмерно много ресурсов. Работа на виртуальных машинах с небольшим объёмом памяти или одноплатных компьютерах, где часто возникает активное использование swap. Запуск оповещений или скриптов очистки при каждом завершении процесса из-за нехватки памяти.
Где скачать earlyoom?
Исходный код и инструкции по установке — на GitHub: https://github.com/rfjakob/earlyoom

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты