Išvardykite naują ankstyvojo 1.4 versiją - įrankį, kuris padės išvengti strigčių dėl atminties trūkumo

ankstyvas

Metų pradžioje mes čia, tinklaraštyje, kalbame apie „Earlyoom“ programą, kuris po diskusijos su Fedora kūrėjais buvo priimtas naudoti šią priemonę Fedora 32 kaip foninį procesą, kuriuo jie ketina pagerinti sistemos reakciją į atminties trūkumą ir taip išvengti gedimų.

Dabar po kelių savaičių ir Po aštuonių mėnesių kūrimo buvo paskelbta apie naujos Earlyoom 1.4 versijos paleidimą.

Tiems, kurie nėra susipažinę su projektu, jie turėtų tai žinoti tai fono gija, kuri periodiškai tikrina laisvos atminties kiekį (MemAvailable, SwapFree) ir bando reaguoti į atminties trūkumą ankstyvoje stadijoje. Projekto kodas parašytas C ir platinamas pagal MIT licenciją.

Ankstyvasis kambarys
Susijęs straipsnis:
Ankstyvas temos įtraukimas į „Fedora 32“, kad būtų išvengta atminties gedimų

Jei laisvos atminties kiekis yra mažesnis nei nurodyta vertė, earlyoom baigsis jėga (siunčiant SIGTERM arba SIGKILL) procesas, kuris užima daugiausiai atminties (kuris turi didžiausią reikšmę /proc/*/oom_score), be sistemos būsenos išvalius sistemos buferius ir netrukdant apsikeitimo darbui (OOM (out of memory) tvarkyklė branduolyje aktyvuojama, kai žemos būsenos atmintis jau pasiekia kritines reikšmes ir paprastai šiuo metu sistema nebereaguoja į vartotojo veiksmus).

„Earlyoom“ palaiko priverstinio proceso pranešimų siuntimą į darbalaukį (siunčiant pranešimus), taip pat suteikia galimybę apibrėžti taisykles, pagal kurias įprastos išraiškos gali būti naudojamos norint nurodyti procesų, kuriuos pageidautina nutraukti (parinktis „–prefer“) arba sustabdyti, kurių reikėtų vengti, pavadinimus ( variantas – vengti).

Kas naujo „Earlyoom 1.4“?

Šioje naujoje versijoje išsiskiria kai kurie pakeitimai, iš kurių Paminėta, kad dirbu ties kodo valymu taip pat dėl ​​uždelsto proceso atributų įkėlimo, Procesų, kuriuos reikia užbaigti, atrankos logika paspartėja 50%.

Be to, taip pat Įdiegtas root teisių nustatymas iš naujo disko faile “systemd earlyoom.service". Šis pakeitimas nutraukia galimybę gauti GUI pranešimus.

Norint vėl įjungti GUI pranešimus, siūloma grąžinti pagrindines teises panaikinant komentarą eilutėje «DynamicUser = tiesa"

Nors išjungus root, taip pat neįmanoma gauti informacijos apie atminties suvartojimą montuojant / proc Režimas hidepid= 1 arba hidepid=2.

Iš kitų pokyčių kad išsiskiria:

  • Nutraukto proceso UID atsispindi žurnale, be proceso PID ir pavadinimo.
  • Pridėtas derinimo žurnalo paryškinimas šviesiai pilka spalva.
  • Jei įmanoma, buvo naudojamas kintamųjų, esančių blokuose, deklaravimas.
  • Konfigūracija pridėta PATH_LEN pakeisti buferio dydžio reikšmę, įterptą kode.
  • Gebėjimas pradėti cppcheck jei galima.
  • Pridėtas „padaryti stendą“ veikimo testas.
  • Išplėstinis testų rinkinys (padaryti testą).

Pagaliau jei norite apie tai sužinoti daugiau Apie šį leidimą galite sužinoti išsamią informaciją sekanti nuoroda. 

Kaip įdiegti earlyoom „Linux“?

Tiems, kurie nori išbandyti šią priemonę, galite tai padaryti vadovaudamiesi toliau pateiktomis instrukcijomis.

Earlyoom yra kai kurių paskirstymų saugyklose populiaraus Linux, taigi Debian, Ubuntu ir bet kurios išvestinės versijos atveju Iš jų diegimą galima atlikti naudojant šią komandą:

sudo apt install earlyoom

Kai tai bus padaryta, paslauga turi būti įjungta naudojant komandą:

sudo systemctl enable earlyoom

Ir prasideda nuo:

sudo systemctl start earlyoom

Dėl. \ T Fedora ir RHEL 8 su EPEL, galima įdiegti naudojant šią komandą:

sudo dnf install earlyoom

Ir paslauga aktyvuojama naudojant:

sudo systemctl enable --now earlyoom

Galiausiai, „Arch Linux“ ar bet kurio kito to darinio atveju, diegimas atliekamas naudojant šią komandą:

sudo pacman -S earlyoom

Ir paslauga aktyvuojama naudojant:

sudo systemctl enable --now earlyoom

Visiems kitiems „Linux“ paskirstymams Jie gali atlikti diegimą, sudarydami paslaugų kodą.

Norėdami gauti kodą, galime tai padaryti naudodami šią komandą:

git clone https://github.com/rfjakob/earlyoom.git

cd earlyoom

Mes tęsiame kompiliavimą su:

make

Ir mes įdiegiame (jei turite Systemd):

sudo make install

Arba tiems, kurie neturi Systemd:

sudo make install-initscript

O norėdami naudotis paslauga, tai darote su:

./earlyoom