Na začiatku roka hovoríme tu na blogu o utilite Earlyoom, ktorý bol po diskusii vývojárov Fedory prijatý na použitie tohto pomocného programu vo Fedore 32 ako procesu na pozadí, pomocou ktorého chcú vylepšiť reakciu systému na nedostatok pamäte a zabrániť tak zrúteniu.
Teraz o niekoľko týždňov neskôr a Po ôsmich mesiacoch vývoja bolo oznámené vydanie novej verzie Earlyoom 1.4.
Pre tých, ktorí tento projekt nepoznajú, by to mali vedieť toto je vlákno na pozadí, ktoré pravidelne kontroluje množstvo dostupnej pamäte (MemAvailable, SwapFree) a snaží sa reagovať na stav nedostatku pamäte v počiatočnom štádiu. Kód projektu je napísaný v jazyku C a distribuovaný pod licenciou MIT.
Ak je množstvo dostupnej pamäte menšie než zadaná hodnota, Earlyoom sa skončí násilím (zaslaním SIGTERM alebo SIGKILL) proces procesu, ktorý spotrebuje najviac pamäte (ktorý má najvyššiu hodnotu / proc / * / oom_score), bez vyrovnávania systémových stavov systémových vyrovnávacích pamätí a zásahu do swapovej práce (ovládač OOM (nedostatok pamäte) v jadre, keď je stav nízky) pamäť už dosiahla kritické hodnoty a systém v tomto okamihu už spravidla nereaguje na akcie používateľa).
Earlyoom podporuje zasielanie vynútených oznámení o procese na plochu (zasielaním notifikácií) a tiež poskytuje možnosť definovať pravidlá, pomocou ktorých možno regulárnymi výrazmi určiť názvy procesov, ktorých ukončenie je preferované (možnosť „–prefer“) alebo zastávky, ktorým by sa malo zabrániť (–Vyhnite sa možnosti).
Čo je nové v Earlyoom 1.4?
V tejto novej verzii sú zvýraznené niektoré zmeny Spomína sa, že pracujem na vyčistení kódu a to aj z dôvodu oneskoreného načítania atribútov procesu, logika výberu procesov na dokončenie je zrýchlená o 50%.
Okrem toho tiež bol implementovaný reset oprávnení root v súbore jednotky “systemd earlyoom.service". Táto zmena porušuje schopnosť prijímať oznámenia GUI.
Ak chcete znova povoliť upozornenia grafického používateľského rozhrania, navrhuje sa vrátiť koreňové práva odznačením riadku «DynamicUser = true".
Aj keď vypnutie root tiež znemožňuje získať informácie o spotrebe pamäte pri pripojení / proc v režime hidepid = 1 alebo hidepid = 2.
Z ďalších zmien ktoré vynikajú:
- Identifikátor UID ukončeného procesu sa okrem PID a názvu procesu prejaví aj v registri.
- Bolo pridané svetlošedé zvýraznenie ladiaceho protokolu.
- Pokiaľ je to možné, použilo sa vyhlásenie o premenných lokálnych pre bloky.
- Konfigurácia bola pridaná PATH_LEN prepísať hodnotu veľkosti vloženého bufferu v kóde.
- Možnosť štartu cppcheck Ak je k dispozícii.
- Bol pridaný test výkonu „make bench“.
- Rozšírená testovacia sada (vykonať test).
Konečne ak o tom chcete vedieť viac O tomto vydaní môžete skontrolovať podrobnosti v nasledujúci odkaz.
Ako nainštalovať earlyoom na Linuxe?
Pre tých, ktorí majú záujem o vyskúšanie tohto nástroja, môžu tak urobiť podľa pokynov, ktoré zdieľame nižšie.
Earlyoom sa nachádza v úložiskách niektorých distribúcií populárneho Linuxu, v prípade Debianu, Ubuntu a akýchkoľvek derivátov z nich je inštaláciu možné vykonať pomocou nasledujúceho príkazu:
sudo apt install earlyoom
Po dokončení je potrebné službu povoliť pomocou príkazu:
sudo systemctl enable earlyoom
A začína to:
sudo systemctl start earlyoom
V prípade Fedora a RHEL 8 s EPEL, dá sa nainštalovať pomocou nasledujúceho príkazu:
sudo dnf install earlyoom
A služba sa aktivuje pomocou:
sudo systemctl enable --now earlyoom
konečne, v prípade Arch Linuxu alebo iného derivátu tohto systému, inštalácia sa vykonáva nasledujúcim príkazom:
sudo pacman -S earlyoom
A služba sa aktivuje pomocou:
sudo systemctl enable --now earlyoom
Pre všetky ostatné distribúcie Linuxu môžu vykonať inštaláciu kompiláciou obslužného kódu.
Na získanie kódu to môžeme urobiť pomocou nasledujúceho príkazu:
git clone https://github.com/rfjakob/earlyoom.git
cd earlyoom
Pokračujeme v kompilácii s:
make
A nainštalujeme (ak máte Systemd):
sudo make install
Alebo pre tých, ktorí nemajú Systemd:
sudo make install-initscript
A aby ste využili službu, ktorú robíte s:
./earlyoom
Detail názvu: «strata pamäte»
Ďakujem za postreh. Na zdravie! 🙂
Myslím, že je tu detail s inštaláciou v Manjaro (odvodený od Archa). Balík som nenašiel v bežných úložiskách.
Inštalácia by teda mala byť vykonaná cez yaourt.
yaourt earlyoom
Zdravím!
V Arche je to vnútri archívu komunity, ktorý musí byť povolený v pacman.conf. Rovnakým spôsobom, ako ste spomenuli, je to aj v AUR.
Ďakujem za postreh 😀
Dobrý deň, chcem, aby sa táto služba spustila v MXLinuxe zakaždým, keď zapnem počítač bez toho, aby som musel zadávať príkaz do terminálu, ako to môžem urobiť?