Der Linux-Kernel kann Situationen mit Speicherknappheit nicht sanft verarbeiten.

In der Mailingliste der Linux-Kernel-Entwickler wurde das Thema aufgebracht der Behandlung von Situationen mit erschöpftem freiem Speicher in Linux:

Es gibt ein bekanntes Problem, das viele Menschen seit Jahren plagt und das sich in weniger als wenigen Minuten in der neuesten Version des Linux-Kernels 5.2.6 reproduzieren lässt. Alle Kernel-Parameter sind auf die Standardwerte gesetzt.

Schritte:

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

Sobald eine Situation entsteht, in der ein neuer Tab mehr Arbeitsspeicher benötigt, als verfügbar ist, hängt das System nahezu vollständig. Sie werden Schwierigkeiten haben, die Maus zu bewegen. Die Festplattenanzeige wird ununterbrochen blinken (ich verstehe nicht warum). Sie können keine neuen Anwendungen starten oder die aktuell laufenden schließen.

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

Ich bin mir fast sicher, dass man einige sysctl-Parameter ändern kann, um solche Situationen zu vermeiden, aber irgendetwas sagt mir, dass dies standardmäßig für alle erledigt werden sollte, denn technisch nicht versierte Nutzer, die mit einem solchen Problem konfrontiert werden, werden einfach die Nutzung von Linux aufgeben und nicht daran denken, Lösungen bei Google zu suchen.

Im Kommentare Auf Reddit schlagen einige Nutzer vor, Swap zu aktivieren, aber das löst das Problem nicht, sondern schiebt es nur auf und verschärft es oft. Eine mögliche Lösung in der Zukunft könnte die in den Kernel eingeführte 4.20 und verbesserte 5.2 PSI (Pressure Stall Information)-Unterstützung sein, die es ermöglicht, Informationen über Wartezeiten beim Erhalt verschiedener Ressourcen (CPU, Speicher, Ein-/Ausgabe) zu analysieren. Diese Unterstützung ermöglicht es, den Mangel an Speicher frühzeitig zu überwachen, die Quelle der Probleme zu identifizieren und unwichtige Anwendungen zu beenden, ohne dass es zu merklichen Auswirkungen für den Nutzer kommt.

Quelle: opennet.ru

60GB SSD 8Gb DDR4