Wie kann ich verhindern, dass mein System aufgrund hoher RAM-Auslastung abstürzt oder unbrauchbar wird?

7

Manchmal, wenn ich Lubuntu 17.10 verwende - vollständig aktualisiert, erreicht meine RAM-Auslastung 100% und das System wird unbrauchbar. Wenn ich "Glück" habe, kann ich meine Maus etwa 1 Pixel pro 10 Sekunden bewegen ... Dies macht es praktisch unmöglich alles sogar eine Anwendung herunterfahren. Ich bin dann gezwungen, den Netzschalter an meinem Laptop zu verwenden.

Ich verwende Ende 2013 ein MacBook Pro Retina mit fast frischer Lubuntu 17.10-Installation.

Bisher ist es passiert, während ich spyder3 geöffnet habe und zu große Dateien geladen habe. Es passierte auch, als ich in Firefox auf diesen Link klickte (WARNUNG: könnte abstürzen) http://stats.oecd.org/restsdmx/sdmx.ashx/GetData/SNA_TABLE1 . Ich habe sogar den Tab geschlossen, bevor ich 100% Auslastung erreicht habe, aber es ging nur bis zu 100% weiter und stürzte ab. Ich habe es nur bemerkt, weil ich die Registerkarte geschlossen und die RAM-Auslastung in spyder3 gesehen habe (ich habe keine Python3-Skripte ausgeführt).

Gibt es eine Möglichkeit, dies zu verhindern? Stellen Sie möglicherweise sicher, dass eine bestimmte RAM-Größe nur vom Betriebssystem verwendet werden kann?

Holykebab
quelle
Können Sie etwas bereitstellen, um dieses Diwn einzugrenzen? Protokolldateien, die einen Hinweis haben? Ansonsten gibt es nicht viel zu tun. (Siehe / var / log / und überprüfen Sie die Protokolle, die nach einem Absturz neue Zeilen erhalten haben)
Rinzwind
3
Bitte markieren Sie Ihre Frage nicht als "Gelöst" und geben Sie die Antwort in die Frage ein, da dies Ask Ubuntu nicht richtig mitteilt, dass Ihre Frage gelöst ist. Stattdessen setzen Sie die Antwort im Allgemeinen in den Antwortbereich unten und klicken auf das Häkchen neben Ihrer Antwort, um sie als gelöst zu markieren. In diesem Fall sollte die Antwort von FK-VH wahrscheinlich akzeptiert werden, indem Sie auf das Häkchen daneben klicken, da Sie Ihre Swap-Partition aktivieren mussten.
Chai T. Rex

Antworten:

3

Wahrscheinlich wird Ihr Problem durch das "Thrashing" des Systems verursacht - viele Seiten Speicher werden gleichzeitig zum und vom Swap Space verschoben, und es bleibt keine Zeit für die Ausführung realer Prozesse.

Wenn Sie möchten, dass Prozesse, die zu viel Speicher belegen, beendet werden, anstatt Ihr gesamtes System langsam laufen zu lassen, können Sie den Austausch deaktivieren. Durch Ausführen sudo swapoff -awird dies bis zu einem Neustart erreicht. Um Swap dauerhaft zu deaktivieren, müssen Sie bearbeiten /etc/fstab, um die Swapfile / Swap-Partition zu entfernen, indem Sie die Zeile mit swapin der dritten Spalte entfernen oder auskommentieren . Zum Beispiel /etc/fstabsieht mein ein bisschen so aus:

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/mapper/ubuntu--vg-root /               ext4    errors=remount-ro 0       1
# /boot was on /dev/sda1 during installation
UUID=fdedeca9-dafe-1a05-0866-7502fda1a7ea /boot           ext2    defaults        0       2
/dev/mapper/ubuntu--vg-swap_1 none            swap    sw              0       0

Um den Austausch zu deaktivieren, würde ich die letzte Zeile auskommentieren (indem ich einen Hash #am Anfang der Zeile setze) und dann neu starten. Stellen Sie sicher, dass Sie den Rest der Datei nicht ändern, da Ihr System sonst möglicherweise nicht mehr gestartet werden kann.

Vorsichtsmaßnahme: Wenn Sie den Swap deaktivieren und nicht über genügend physischen Speicher für grundlegende Systemdienste verfügen, kann der OOM-Killer entscheiden, einen dieser Dienste zu beenden und das System zum Absturz zu bringen oder anderweitig unbrauchbar zu werden (was laut Frage vermieden werden soll).

Asche
quelle
Eine möglicherweise weniger wirkungsvolle Lösung als das vollständige Deaktivieren des Austauschs wäre askubuntu.com/questions/103915/how-do-i-configure-swappiness
Elder Geek
6

Wenn ein Prozess zu viel Speicher verbraucht, sollte sich das System durch den OOM-Killer schützen, der in jedem Linux-System Standard ist.

Wie entscheidet der OOM-Killer, welcher Prozess zuerst getötet werden soll?

Wenn der Speicher von Prozessen in einem Ausmaß erschöpft wird, das möglicherweise die Stabilität des Systems gefährden kann, kommt der OOM-Killer ins Spiel.

HINWEIS: Es ist die Aufgabe des OOM Killer, Prozesse weiter zu beenden, bis genügend Speicherplatz für das reibungslose Funktionieren des restlichen Prozesses frei ist, den der Kernel auszuführen versucht.

Der OOM Killer muss die besten Prozesse zum Töten auswählen. Das Beste bezieht sich hier auf den Prozess, der beim Beenden den maximalen Speicher freigibt und für das System auch am wenigsten wichtig ist.

Das Hauptziel besteht darin, die geringste Anzahl von Prozessen zu beenden, um den verursachten Schaden zu minimieren und gleichzeitig die Menge des freigegebenen Speichers zu maximieren.

Um dies zu erleichtern, verwaltet der Kernel für jeden Prozess einen oom_score. Sie können den oom_score der einzelnen Prozesse im Dateisystem / proc im Verzeichnis pid anzeigen.

$ cat /proc/10292/oom_score

Je höher der Wert von oom_score eines Prozesses ist, desto höher ist die Wahrscheinlichkeit, dass der OOM-Killer in einer Situation ohne Speicherplatz getötet wird.

Wenn Ihr System abstürzt, würde ich vorschlagen, die OOM-Richtlinie durch Anpassen des oom_score Ihrer Prozesse zu optimieren.

Es ist unwahrscheinlich, dass der OOM-Killer deaktiviert wurde. Überprüfen Sie jedoch, ob dieser Befehl Folgendes zurückgibt 0:

$ sudo sysctl vm.overcommit_memory
vm.overcommit_memory = 0

Verweise:

  1. http://www.oracle.com/technetwork/articles/servers-storage-dev/oom-killer-1911807.html
  2. /superuser/1150215/disabling-oom-killer-on-ubuntu-14-04/1150229
  3. /unix/153585/how-does-the-oom-killer-decide-which-process-to-kill-first
  4. https://www.kernel.org/doc/Documentation/sysctl/vm.txt
rpet
quelle
1

Erstellen Sie eine Auslagerungspartition oder eine Auslagerungsdatei. Diese sind wie RAM, aber auf der Festplatte, so ist es viel langsamer. Wenn Sie nicht über genügend RAM verfügen, speichert das System Daten auf der Festplatte anstelle des RAM. Sie müssen die Größe angeben. Es wird allgemein empfohlen, dass Sie ungefähr die gleiche Größe wie Ihr RAM haben.

Das Auslagern von Dateien ist einfacher, ermöglicht jedoch keinen Ruhezustand auf der Festplatte.

Auslagerungsdatei: https://www.howtoforge.com/ubuntu-swap-file

Eine Swap-Partition ist schwieriger zu erstellen, wenn Sie Ihr System bereits installiert haben und der gesamte Festplattenspeicher partitioniert ist. Dies ermöglicht jedoch den Ruhezustand.

Swap-Partition: Wie füge ich nach der Systeminstallation eine Swap-Partition hinzu?

FK-VH
quelle
1
Dies wird wahrscheinlich nicht helfen - das Problem würde wahrscheinlich tatsächlich durch Deaktivieren des aktuell konfigurierten Swaps gelöst!
Ash
@Josh, könnten Sie bitte erläutern, warum das Deaktivieren des Austauschs die Lösung für die Verwendung von 100% RAM sein sollte. Es ist gegen jeden gesunden Menschenverstand in meiner Welt.
Soren A
1
@SorenA Ich denke, das beschriebene Problem ("das System wird unbrauchbar, wenn ich" Glück habe ", dass ich meine Maus etwa 1 Pixel pro 10 Sekunden bewegen kann") wird wahrscheinlich durch das System verursacht, das versucht, viele Seiten ein- und auszutauschen auf einmal. Das Deaktivieren des Austauschs sollte dazu führen, dass die speicherhungrige Anwendung beendet wird, anstatt das gesamte System zum Stillstand zu bringen.
Ash
0

@ Josh antwortete:

Ich denke, das beschriebene Problem ("das System wird unbrauchbar, wenn ich" Glück habe ", dass ich meine Maus etwa 1 Pixel pro 10 Sekunden bewegen kann") wird wahrscheinlich durch das System verursacht, das versucht, viele Seiten gleichzeitig ein- und auszutauschen . Das Deaktivieren des Austauschs sollte dazu führen, dass die speicherhungrige Anwendung beendet wird, anstatt das gesamte System zum Stillstand zu bringen.

Dies löste mein Problem.

Ich hatte einen Tausch, als ich Lubuntu installierte, aber er wurde später mit gparted entfernt. Ich habe / etc / fstab nicht bearbeitet, was das Problem verursacht hat. Sobald der Tausch ordnungsgemäß entfernt wurde, begann der OOM-Killer wie beabsichtigt zu arbeiten.

Holykebab
quelle
Ich würde, aber da @Josh sich für einen Kommentar entschieden hat, konnte ich ihn nur als Antwort umschreiben, aber ich muss 48 Stunden warten, um ihn als Antwort auszuwählen. Die beiden anderen geben nützliche Informationen, haben das Problem jedoch nicht gelöst.
Holykebab
1
Oh, mein Fehler. In diesem Fall empfehle ich , diese Antwort zu bearbeiten , um sie um bestimmte Details zu erweitern. (Siehe auch Wie schreibe ich eine gute Antwort? Allgemeine Ratschläge dazu, welche Arten von Antworten auf Ask Ubuntu als am wertvollsten angesehen werden.) Außerdem werde ich Josh bitten, selbst eine richtige Antwort zu schreiben.
David Foerster
1
@ DavidFoerster Ich habe eine Antwort geschrieben .
Ash