Выпуск earlyoom 1.1, процесса для раннего реагирования на нехватку памяти
После пяти месяцев разработки опубликован выпуск фонового процесса earlyoom 1.1, который периодически (10 раз в секунду) проверяет объем доступной памяти (MemAvailable, SwapFree) и пытается на ранней стадии отреагировать на возникновения нехватки памяти.
Если объём доступной памяти меньше заданного значения, то earlyoom принудительно (через отправку SIGKILL) завершит работу процесса, наиболее активно потребляющего память (имеющего самое большое значение /proc/*/oom_score), не доводя состояние системы до очистки системных буферов и мешающего работе своппинга (обработчик OOM (Out Of Memory) в ядре срабатывает когда состояние нехватки памяти уже достигло критичных значений и обычно к этому моменту системе уже не реагирует на действия пользователя).
Earlyoom поддерживает отправку уведомлений о принудительно завершённых процессах на рабочий стол (с помощью notify-send), а также предоставляет возможность определения правил, в которых при помощи регулярных выражений можно задать имена процессов, завершение которых предпочтительно (опция --prefer) или остановки которых стоит избегать (опция --avoid).
Основные изменения в новом выпуске:
- Устранена уязвимость, которая позволяет подставить shell-код при выводе всплывающих уведомлений через манипуляции с именем процесса;
- Время сна после неудачного завершения процесса снижено с 10 до 1 секунды;
- Всплывающие уведомления теперь отправляются после завершения процесса, а не перед;
- В дополнение к »-h» добавлена опция »--help»;
- Исправлена проблема, приводящая к неверному отображению имен процессов во всплывающих уведомлениях;
- Исправлено возможное деление на ноль при использовании опции »-S».
© OpenNet