Nyolc hónapos fejlesztés után kiadás háttérfolyamat , amely időről időre ellenőrzi a rendelkezésre álló memória mennyiségét (MemAvailable, SwapFree), és korai szakaszban próbál reagálni a memóriahiány kialakulására. A projekt kódja C nyelven készült és MIT licenc alatt érhető el.
Ha a rendelkezésre álló memória mennyisége alacsonyabb a megadott értéknél, az earlyoom kényszerítően (SIGTERM vagy SIGKILL küldésével) leállítja a legnagyobb memóriafelhasználással rendelkező folyamatot (amelynek a legmagasabb értéke van a /proc/*/oom_score alatt), anélkül, hogy a rendszer állapotát a rendszerpuffer tisztításáig hozná, és megzavarná a swapelést (az OOM (Out Of Memory) kezelője a kernelben akkor aktiválódik, amikor a memóriahiány állapota már kritikus szintre emelkedett, és jellemzően ekkor a rendszer már nem reagál a felhasználói műveletekre).
Az earlyoom támogatja az értesítések küldését a kényszerített leállítás alá eső folyamatokról az asztalra (a notify-send segítségével), és lehetőséget biztosít szabályok meghatározására, amelyek segítségével reguláris kifejezésekkel megadhatók azok a folyamatok, amelyek leállítása előnyben részesített (—prefer opció) vagy amelyeket érdemes elkerülni (—avoid opció).
Fő az új kiadásban:
- A folyamatok attribútumainak köszönhetően 50%-kal gyorsabb lett a folyamatok leállításának logikája; A naplózásban biztosított a leállított folyamat UID-jának rögzítése, a PID és a folyamat neve mellett;
- Hozzáadva a hibakereső napló világosszürke színű kiemelése;
- Kód tisztítás történt;
- A blokkok helyi változóinak deklarálását lehetőség szerint használták;
- Hozzáadva a PATH_LEN beállítás a beépített puffer méretének cseréjéhez;
- Biztosítva a cppcheck futtatása, ha elérhető;
- Teljesítménymérés teszt hozzáadva: "make bench";
- A tesztek köre bővült (make test);
- A root jogosultságok visszavonásának megvalósítása a systemd earlyoom.service unit-fájlban. Ez a módosítás
- törli megakadályozza a memóriafogyasztás információinak beszerzését, ha a /proc montálva van hidepid=1 vagy hidepid=2 módban. Nyolc hónapos fejlesztés után kiadva a háttérfolyamatot
Forrás: opennet.ru
