Wydanie obsługi zaniku pamięci earlyoom 1.4

Po ośmiu miesiącach prac rozwojowych opublikowano wydanie procesu w tle earlyoom 1.4, który okresowo sprawdza ilość dostępnej pamięci (MemAvailable, SwapFree) i stara się zareagować na wystąpienie niedoboru pamięci na wczesnym etapie. Kod projektu został napisany w języku C i rozpowszechniany jest objęty licencją MIT.

Jeśli ilość dostępnej pamięci jest mniejsza od ustalonej wartości, earlyoom wymusi (poprzez wysłanie SIGTERM lub SIGKILL) zakończenie procesu, który najbardziej intensywnie zużywa pamięć (mającego najwyższy wskaźnik /proc/*/oom_score), nie doprowadzając stanu systemu do oczyszczenia buforów systemowych i utrudniając działanie swapowania (handler OOM (Out Of Memory) w jądrze uruchamia się, gdy stan niedoboru pamięci już osiągnął krytyczne wartości i zwykle w tym momencie system już nie reaguje na działania użytkownika).

Earlyoom obsługuje wysyłanie powiadomień o wymuszonym zakończeniu procesów na pulpit (za pomocą notify-send), a także zapewnia możliwość definiowania reguł, w których przy użyciu wyrażeń regularnych można określić nazwy procesów, których zakończenia się preferuje (opcja «—prefer») lub których należy unikać (opcja «—avoid»).

Podstawowe zmiany w nowym wydaniu:

  • Dzięki opóźnionego ładowania atrybutom procesów logika wyboru procesów do zakończenia przyspieszona o 50%;
  • Zarejestrowano w logu UID zakończonego procesu, oprócz PID i nazwy procesu;
  • Dodano podświetlenie logu debugowania jasnoszarym kolorem;
  • Przeprowadzono czyszczenie kodu;
  • Tam, gdzie to możliwe, wykorzystano deklaracje lokalnych zmiennych dla bloków;
  • Dodano opcję PATH_LEN do zastąpienia wbudowanej w kod wartości rozmiaru bufora;
  • Zapewniono uruchomienie cppcheck, jeśli jest dostępny;
  • Dodano test wydajności «make bench»;
  • Rozszerzono zestaw testów (make test);
  • Wprowadzono reset uprawnień root w pliku jednostki systemd earlyoom.service. Ta zmiana łamała możliwość powiadomień GUI. Aby włączyć powiadomienia GUI, zaleca się przywrócenie uprawnień root, odkomentowując «DynamicUser=true». Wyłączenie root również przywołuje prowadzi do braku możliwości uzyskania informacji o zużyciu pamięci przy montowaniu /proc w trybie hidepid=1 lub hidepid=2.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster