Jądro Linuksa nie radzi sobie z sytuacjami braku pamięci

Na liście mailingowej programistów jądra Linuksa uniesiony Problem z obsługą sytuacji braku pamięci w systemie Linux:

Istnieje znany problem, który nęka wiele osób od wielu lat i można go odtworzyć w mniej niż kilka minut w najnowszym jądrze Linuksa 5.2.6. Wszystkie parametry jądra mają ustawione wartości domyślne.

Kroki:

  • Uruchom z parametrem „mem=4G”.
  • Wyłącz obsługę zamiany (sudo swapoff -a).
  • Uruchamiamy dowolną przeglądarkę internetową, np. Chrome/Chromium i/lub Firefox.
  • Zaczynamy otwierać karty z witrynami i obserwować, jak zmniejsza się ilość wolnej pamięci.

Gdy tylko pojawi się sytuacja, w której nowa karta wymaga więcej pamięci RAM, niż jest dostępne, system niemal całkowicie się zawiesza. Będziesz miał trudności nawet z poruszaniem kursorem myszy. Wskaźnik dysku twardego będzie migać non-stop (nie wiem dlaczego). Nie będzie można uruchamiać nowych aplikacji ani zamykać aktualnie uruchomionych.

Ten mały kryzys może trwać kilka minut lub dłużej. Myślę, że system nie powinien się tak zachowywać. Myślę, że trzeba coś zrobić, aby uniknąć takich „zamrożeń”.

Jestem prawie pewien, że można zmienić niektóre parametry sysctl, aby uniknąć tego rodzaju sytuacji, ale coś mi mówi, że może to być ustawienie domyślne dla wszystkich, ponieważ nietechniczni użytkownicy, którzy napotkają ten problem, po prostu zrezygnują z używania Linuksa i nie będą tego robić opieki., aby szukać rozwiązań w Google.

В komentarze na Reddicie niektórzy użytkownicy sugerują włączenie wymiany, ale to nie rozwiązuje problemu, tylko go opóźnia i często pogarsza. Jako możliwe rozwiązanie w przyszłości może wiązać się z pojawieniem się w jądrze 4.20 i ulepszone w rdzeniu 5.2 Podsystem PSI (Pressure Stall Information), który umożliwia analizę informacji o czasie oczekiwania na odbiór poszczególnych zasobów (CPU, pamięć, I/O). Podsystem ten umożliwia zorganizowanie monitorowania braków pamięci na wczesnym etapie, określenie źródła problemów i zamknięcie nieistotnych aplikacji bez powodowania zauważalnych dla użytkownika skutków.

Źródło: opennet.ru

Dodaj komentarz