Der Linux-Kernel kann Situationen mit unzureichendem Arbeitsspeicher nicht ordnungsgemäß bewältigen

Auf der Mailingliste für Linux-Kernel-Entwickler erzogen Problem bei der Handhabung von Speichermangel unter Linux:

Es gibt ein bekanntes Problem, das viele Menschen seit vielen Jahren plagt und auf dem neuesten Linux-Kernel 5.2.6 in weniger als ein paar Minuten reproduziert werden kann. Alle Kernel-Parameter werden auf Standardwerte gesetzt.

Schritte:

  • Booten Sie mit dem Parameter „mem=4G“.
  • Deaktivieren Sie die Swap-Unterstützung (sudo swapoff -a).
  • Wir starten jeden Webbrowser, zum Beispiel Chrome/Chromium und/oder Firefox.
  • Wir beginnen, Tabs mit Websites zu öffnen und beobachten, wie der freie Speicher abnimmt.

Sobald eine Situation auftritt, in der ein neuer Tab mehr RAM benötigt als verfügbar ist, friert das System fast vollständig ein. Sie werden Schwierigkeiten haben, den Mauszeiger überhaupt zu bewegen. Die Festplattenanzeige blinkt ununterbrochen (ich weiß nicht warum). Sie können keine neuen Anwendungen starten oder aktuell laufende Anwendungen schließen.

Diese kleine Krise kann Minuten oder länger dauern. Ich denke, das System sollte sich nicht so verhalten. Ich denke, dass etwas getan werden muss, um solche „Einfrierungen“ zu vermeiden.

Ich bin mir ziemlich sicher, dass es möglich ist, einige sysctl-Parameter zu ändern, um eine solche Situation zu vermeiden, aber irgendetwas sagt mir, dass dies die Standardeinstellung für alle sein könnte, weil technisch nicht versierte Benutzer, die auf dieses Problem stoßen, die Verwendung von Linux einfach aufgeben und es nicht tun care. um bei Google nach Lösungen zu suchen.

В Kommentare Auf Reddit schlagen einige Benutzer vor, den Swap zu aktivieren, aber das löst das Problem nicht, sondern verschiebt es nur und macht es oft noch schlimmer. Als mögliche Lösung für die Zukunft könnte die im Kernel aufgetauchte Lösung involviert sein 4.20 und im Kern verbessert 5.2 PSI-Subsystem (Pressure Stall Information), mit dem Sie Informationen über die Wartezeit für den Empfang verschiedener Ressourcen (CPU, Speicher, E/A) analysieren können. Dieses Subsystem ermöglicht es, die Überwachung von Speicherengpässen frühzeitig zu organisieren, die Ursache von Problemen zu ermitteln und unwichtige Anwendungen zu beenden, ohne dass es zu für den Benutzer spürbaren Auswirkungen kommt.

Source: opennet.ru

Kommentar hinzufügen