Wymień nową wersję wczesnego 1.4, narzędzia pozwalającego uniknąć awarii z powodu braku pamięci

wczesny pokój

Na początku roku rozmawiamy tutaj na blogu o narzędziu Earlyoom, który po dyskusji deweloperów Fedory został zaakceptowany do używania tego narzędzia w Fedorze 32 jako procesu w tle, za pomocą którego zamierzają poprawić reakcję systemu na brak pamięci, a tym samym uniknąć awarii.

Teraz kilka tygodni później i Po ośmiu miesiącach rozwoju ogłoszono wydanie nowej wersji Earlyoom 1.4.

Ci, którzy nie są zaznajomieni z projektem, powinni to wiedzieć jest to wątek działający w tle, który okresowo sprawdza ilość dostępnej pamięci (MemAvailable, SwapFree) i próbuje zareagować na stan braku pamięci na wczesnym etapie. Kod projektu jest napisany w C i rozpowszechniany na licencji MIT.

Wcześnie
Podobne artykuł:
Wcześnie powiększ wątek, aby dołączyć go do Fedory 32, aby uniknąć awarii pamięci

Jeśli ilość dostępnej pamięci jest mniejsza niż określona wartość, wczesny pokój zakończy się siłą (wysyłając SIGTERM lub SIGKILL) proces procesu, który zużywa najwięcej pamięci (który ma najwyższą wartość / proc / * / oom_score), bez czyszczenia buforów systemowych stanu systemu i ingerencji w pracę wymiany (sterownik OOM (out of memory) w jądrze odpala, gdy pamięć o niskim stanie osiągnęła już krytyczne wartości i ogólnie przy tym punkt system nie reaguje już na działania użytkownika).

Earlyoom obsługuje wysyłanie wymuszonych powiadomień o procesach na pulpit (poprzez wysyłanie powiadomień), a także daje możliwość zdefiniowania reguł, w których wyrażenia regularne mogą służyć do określenia nazw procesów, których zakończenie jest preferowane (opcja "–prefer") lub zatrzymań, których należy unikać (- Unikaj opcji).

Co nowego w Earlyoom 1.4?

W nowej wersji wyróżniono niektóre zmiany, w tym Wspomina się, że pracuję nad czyszczeniem kodu a także ze względu na opóźnione ładowanie atrybutów procesu, logika wyboru procesów do ukończenia jest przyspieszona o 50%.

Poza tym też zaimplementowano reset uprawnień roota w pliku na dysku "systemd Earlyoom.service". Ta zmiana blokuje możliwość otrzymywania powiadomień graficznego interfejsu użytkownika.

Aby ponownie włączyć powiadomienia w graficznym interfejsie użytkownika, proponuje się przywrócenie praw roota, usuwając komentarz z wiersza «DynamicUser = true".

Chociaż wyłączenie roota również uniemożliwia uzyskanie informacji o zużyciu pamięci podczas montowania / proc Tryb hidepid = 1 lub hidepid = 2.

Z innych zmian które wyróżniają się:

  • Identyfikator UID zakończonego procesu jest widoczny w rejestrze, oprócz PID i nazwy procesu.
  • Dodano jasnoszare podświetlenie dziennika debugowania.
  • Jeśli było to możliwe, użyto deklaracji zmiennych lokalnych dla bloków.
  • Konfiguracja dodana ŚCIEŻKA_DŁ aby przesłonić wartość rozmiaru bufora osadzonego w kodzie.
  • Możliwość uruchomienia sprawdzanie cpp Jeśli możliwe.
  • Dodano test wydajności „make bench”.
  • Rozszerzony zestaw testów (wykonaj test).

W końcu jeśli chcesz dowiedzieć się więcej na ten temat Informacje o tej wersji można sprawdzić w następujący link. 

Jak zainstalować program Earlyoom w systemie Linux?

Dla tych, którzy są zainteresowani wypróbowaniem tego narzędzia, mogą to zrobić, postępując zgodnie z instrukcjami, które udostępniamy poniżej.

Earlyoom znajduje się w repozytoriach niektórych dystrybucji popularnego Linuksa, więc w przypadku Debiana, Ubuntu i wszelkich pochodnych spośród nich instalację można wykonać za pomocą następującego polecenia:

sudo apt install earlyoom

Po wykonaniu tej czynności usługę należy teraz włączyć za pomocą polecenia:

sudo systemctl enable earlyoom

A zaczyna się od:

sudo systemctl start earlyoom

W przypadku Fedora i RHEL 8 z EPEL, można go zainstalować za pomocą następującego polecenia:

sudo dnf install earlyoom

Usługa jest aktywowana za pomocą:

sudo systemctl enable --now earlyoom

Wreszcie, w przypadku Arch Linux lub jakiejkolwiek innej pochodnej tego, instalacja jest wykonywana za pomocą następującego polecenia:

sudo pacman -S earlyoom

Usługa jest aktywowana za pomocą:

sudo systemctl enable --now earlyoom

W przypadku wszystkich innych dystrybucji Linuksa mogą przeprowadzić instalację, kompilując kod narzędzia.

Aby uzyskać kod, możemy to zrobić za pomocą następującego polecenia:

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

cd earlyoom

Przechodzimy do kompilacji z:

make

I instalujemy (jeśli masz Systemd):

sudo make install

Lub dla tych, którzy nie mają Systemd:

sudo make install-initscript

Aby skorzystać z usługi, za pomocą której to robisz:

./earlyoom


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   infogon powiedział

    Fragment tytułu: „utrata pamięci”

    1.    David naranjo powiedział

      Dzięki za obserwację. Twoje zdrowie! 🙂

  2.   linuxmanr4 powiedział

    Myślę, że jest jakiś szczegół z instalacją w Manjaro (zaczerpnięta z Arch). Nie znalazłem pakietu w normalnych repozytoriach.

    Więc instalacja powinna zostać przeprowadzona przez ciebie.

    yaourt earlyoom

    Pozdrowienia!

    1.    David naranjo powiedział

      W Arch znajduje się wewnątrz repozytorium społeczności, które należy włączyć w pacman.conf. Tak jak wspomniałeś, jest też w AUR.

      Dzięki za obserwację 😀

  3.   Fran Pavon powiedział

    Witam, chcę, aby ta usługa uruchamiała się w MXLinux za każdym razem, gdy włączam komputer bez konieczności umieszczania polecenia w terminalu, jak mam to zrobić?