Содержание
Если вы работаете с “тяжелыми” приложениями в условиях нехватки оперативной памяти, вам знакома такая ситуация, как OOM – Out Of Memory, это когда запущенным программам нужно больше оперативной памяти, чем имеется в системе. В такой ситуации система обычно начинает свапиться на диск и при этом тормозить, что неприятно для пользователя. У меня в блоге уже был материал про Nohang, так вот Earlyoom делает всё то же самое, ну кроме отображения уведомлений, но в то же время менее требовательна к конфигурации компьютера.
Earlyoom автоматически завершает программу, если она приводит к исчерпыванию всей свободной ОЗУ в системе, предотвращая ситуацию нехватки оперативной памяти – OOM. Условия срабатывания такие:
sending SIGTERM when mem <= 10.00% and swap <= 10.00%,
SIGKILL when mem <= 5.00% and swap <= 5.00%
Установка, включение автозапуска и запуск Earlyoom в различных дистрибутивах Linux
Earlyoom имеется в репозиториях всех популярных дистрибутивов Linux.
Arch Linux, Manjaro Linux
sudo pacman -S earlyoom
sudo systemctl enable earlyoom.service
sudo systemctl start earlyoom.service
Debian GNU/Linux, Ubuntu, Linux Mint
sudo apt install earlyoom
sudo systemctl enable earlyoom.service
sudo systemctl start earlyoom.service
Проверка работы
Узнать статус процесса Earlyoom можно с помощью следующей команды:
sudo systemctl status earlyoom.service
Если в статусе указано “Active: active (running)” – всё в порядке, Earlyoom запущен и правильно работает. Теперь можно устроить в системе катастрофическую нехватку оперативной памяти для проверки работы Earlyoom. Для этого прежде всего отключим swap на диске, если таковой имеется, чтобы не ждать пока он заполнится.
sudo swapoff -a
Ну а теперь забиваем всю доступную в системе оперативную память нулями:
tail /dev/zero
Далее должно произойте следующее: процесс tail должен занять всю доступную ОЗУ в системе, после чего его должен прибить Earlyoom, тем самым освободив оперативную память. Если у вас произошло именно так – поздравляю, всё работает как и должно! Успехов!