На початку року ми говоримо тут у блозі про утиліту Earlyoom, який після обговорення розробниками Fedora був прийнятий для використання цієї утиліти у Fedora 32 як фоновий процес, за допомогою якого вони мають намір покращити реакцію системи на відсутність пам'яті і тим самим уникнути збоїв.
Зараз через кілька тижнів і Після восьми місяців розробки було анонсовано випуск нової версії Earlyoom 1.4.
Тим, хто не знайомий з проектом, вони повинні це знати це фонова нитка, яка періодично перевіряє обсяг доступної пам'яті (MemAvailable, SwapFree) і намагається реагувати на стан, що не має пам'яті, на ранній стадії. Код проекту написаний на C та поширюється за ліцензією MIT.
Якщо обсяг доступної пам'яті менше ніж вказане значення, earlyoom закінчиться силою (надіславши SIGTERM або SIGKILL) процес процесу, який споживає найбільше пам'яті (що має найвище значення / proc / * / oom_score), без очищення системних буферів стану системи та втручання у роботу підкачки (драйвер OOM (нестача пам’яті) у пожежі ядра у низькому стані пам'ять вже досягла критичних значень, і загалом на даний момент система вже не реагує на дії користувача).
Earlyoom підтримує надсилання сповіщень про примусовий процес на робочий стіл (шляхом надсилання сповіщень), а також надає можливість визначати правила, в яких регулярні вирази можуть використовуватися для вказівки імен процесів, завершення яких є кращим (опція "–prefer") або зупинок, яких слід уникати (- уникати варіанту).
Що нового в Earlyoom 1.4?
У цій новій версії виділено деякі зміни, з яких Згадується, що я працюю над очищенням коду і це також через затримку завантаження атрибутів процесу, логіка вибору процесів для завершення пришвидшується на 50%.
Крім того ще було здійснено скидання привілеїв root у файлі диска "systemd ranoom.service". Ця зміна порушує можливість отримання сповіщень за допомогою графічного інтерфейсу.
Для повторного ввімкнення сповіщень з графічним інтерфейсом пропонується повернути права root, прокоментувавши рядок «DynamicUser = істина".
Хоча вимкнення root також унеможливлює отримання інформації про споживання пам'яті при монтажі / proc Режим hidepid = 1 або hidepid = 2.
З інших змін що виділяються:
- UID готового процесу відображається в реєстрі, крім PID та назви процесу.
- Додано світло-сіре підсвічування журналу налагодження.
- Якщо можливо, використовувалось оголошення змінних, локальних до блоків.
- Конфігурацію додано PATH_LEN щоб замінити значення розміру вбудованого буфера в коді.
- Можливість запуску cppcheck якщо такі є.
- Додано тест на ефективність "make bench"
- Розширений набір тестів (make test).
В кінці кінців якщо ви хочете дізнатися більше про це Про цей випуск ви можете ознайомитись із деталями в наступне посилання.
Як встановити earlyoom на Linux?
Для тих, хто зацікавлений у можливості спробувати цю утиліту, вони можуть це зробити, дотримуючись інструкцій, якими ми ділимося нижче.
Earlyoom знаходиться в сховищах деяких дистрибутивів популярного Linux, отже, у випадку Debian, Ubuntu та будь-яких похідних з них установку можна виконати за допомогою наступної команди:
sudo apt install earlyoom
Як тільки це буде зроблено, послугу тепер потрібно ввімкнути за допомогою команди:
sudo systemctl enable earlyoom
І все починається з:
sudo systemctl start earlyoom
У випадку Fedora та RHEL 8 з EPEL, його можна встановити за допомогою наступної команди:
sudo dnf install earlyoom
А послуга активується за допомогою:
sudo systemctl enable --now earlyoom
Нарешті, у випадку з Arch Linux або будь-яким іншим похідним цього, установка виконується за такою командою:
sudo pacman -S earlyoom
А послуга активується за допомогою:
sudo systemctl enable --now earlyoom
Для всіх інших дистрибутивів Linux, вони можуть виконати установку, склавши код утиліти.
Щоб отримати код, ми можемо зробити це за допомогою наступної команди:
git clone https://github.com/rfjakob/earlyoom.git
cd earlyoom
Ми продовжуємо компіляцію з:
make
І ми встановлюємо (якщо у вас Systemd):
sudo make install
Або для тих, хто не має Systemd:
sudo make install-initscript
А щоб скористатися послугою, з якою ви це робите:
./earlyoom
Деталь заголовка: «втрата пам’яті»
Дякую за спостереження. З повагою! 🙂
Думаю, є деталь із установкою в Manjaro (похідна від Arch). Я не знайшов пакет у звичайних сховищах.
Отож установка повинна відбуватися через вашу роботу.
yaourt earlyoom
Привіт!
В Arch, це всередині сховища спільноти, яке має бути ввімкнено в pacman.conf. Так само, як ви згадуєте, це також в AUR.
Дякую за спостереження 😀
Привіт, я хочу, щоб ця служба запускалася в MXLinux кожного разу, коли я запускаю комп’ютер без необхідності вводити команду в термінал, як я можу це зробити?