Wie kann verhindert werden, dass mein System beim Thrashing (nicht genügend RAM) nicht mehr reagiert?


11

Ich habe 8 GB RAM, aber manchmal verwende ich ein paar VMs und genug Chrome-Prozesse, um den größten Teil meines Speichers zu verbrauchen. Das ist normalerweise in Ordnung, aber manchmal fängt mein System an zu krachen, und es fällt mir schwer, mich davon zu erholen, ohne nur darauf zu warten, dass die Dinge besser werden, da die Benutzeroberfläche größtenteils eingefroren ist.

In all diesen Fällen könnten die Programme, die den größten Teil meines Arbeitsspeichers verwenden, priorisiert werden. Wenn Chrome oder die VM nicht mehr reagierten, meine grafische Umgebung und mein Terminal jedoch noch reagierten, konnte ich zu einem Terminal wechseln, den Schuldigen finden und es töten. Ich könnte mir so etwas wie ein "Nettes" für den Speicher vorstellen (damit ich Chrome und meine VM schön machen kann) oder etwas, das die grafische Umgebung und mein Terminal dazu zwingt, im Speicher zu bleiben und nicht zu tauschen.

Gibt es eine Möglichkeit, um sicherzustellen, dass die Benutzeroberfläche reagiert, wenn mein System überlastet ist?

Vielen Dank!

EDIT: Ich bin immer noch daran interessiert, ob es so etwas wie ein schönes Gedächtnis gibt, aber ich habe gerade festgestellt, dass mein System keinen Swap Space hat. Ich denke, dass dies passiert ist, weil ich angefangen habe, ein verschlüsseltes Home und einen verschlüsselten Swap zu verwenden (siehe Swap funktioniert nicht bei einer sauberen 14.04-Installation mit verschlüsseltem Home ). Daher reagiert mein System wahrscheinlich nicht mehr, da ich keinen Swap-Speicherplatz habe. Daher kann mein System keine unnötigen Programme austauschen, wenn der Arbeitsspeicher knapp wird.


Es sieht also so aus, als hätten Sie die Ursache für Ihr Problem gefunden (kein Swap zugewiesen). Möchten Sie jetzt wissen, wie Sie einen verschlüsselten Swap einrichten? Vielleicht könnten Sie die Frage bearbeiten oder eine neue Frage beginnen.
Thomasrutter

1
Ich bin immer noch an einer RAM-netten Sache interessiert, da ich ähnliche Probleme hatte wie in meiner Frage beschrieben, selbst wenn ich eine Auslagerungsdatei hatte.
Sam King

Antworten:


2

Ich habe gerade festgestellt, dass mein System keinen Swap Space hat

Wenn dies zutrifft, trägt es wahrscheinlich zum Problem bei.

Durch die Verwendung mehrerer VMs mit großen Speicherzuordnungen wird eine Menge RAM, die normalerweise für den normalen Gebrauch mehr als ausreichend ist (8 GB), knapp, was bedeutet, dass Ihr System nicht so viel Cache verwenden kann und austauschen möchte . Wenn Sie keinen Swap haben, wird der Speicher noch stärker unter Druck gesetzt, und Sie können sogar Aufgaben erledigen, weil Ihnen der Speicher ausgeht.

Swap versucht, die allgemeine Stabilität und Leistung in Situationen wie der von Ihnen beschriebenen zu verbessern, indem einige zugewiesene, aber selten verwendete Daten im Speicher der Festplatte neu zugewiesen werden, wodurch Speicher für die von Ihnen verwendeten Daten freigegeben wird. Das Hinzufügen eines Swaps, falls Sie tatsächlich keinen haben, wird helfen. In Bezug auf die Leistung werden Sie jedoch viel mehr Verbesserungen erzielen, wenn Sie auch mehr RAM kaufen oder weniger davon verwenden.

Auf einem System, auf dem Sie VMs ausführen, aber auch einen normalen Desktop auf dem VM-Host verwenden, möchten Sie nicht, dass Ihre VMs Ihren gesamten RAM belegen. Tatsächlich würde ich die Hälfte Ihres RAM (bis zu 4 GB) sparen ) für den Host, vorausgesetzt, Sie führen Software auf dem Host aus und möchten, dass diese reagiert.

Beachten Sie auch, dass VMs inhärente Ineffizienzen aufweisen, nicht nur, weil ihr RAM vollständig getrennt ist. Sie teilen keinen Cache oder Puffer, sondern sie führen ein ganz separates Betriebssystem unter einer Reihe von Abstraktionsebenen aus. Sie können also immer eine bessere Effizienz erzielen, wenn Sie sich dafür entscheiden, etwas auf dem Host anstatt auf einer VM auszuführen. Wenn Sie jedoch andere Betriebssysteme verwenden möchten, ist dies nicht möglich.

Gibt es eine Möglichkeit, um sicherzustellen, dass die Benutzeroberfläche reagiert, wenn mein System überlastet ist?

Wenn die Menge an RAM, die Sie haben, ein Problem ist, ist alles, was Sie tun können, nur ein Hack - die wirkliche Lösung besteht darin, mehr RAM zu kaufen (obwohl Sie in Ihrem Fall, wie bereits erwähnt, möglicherweise nur weniger den VMs zuweisen können).

Ihre Frage ist in einfachen Worten ausgedrückt: Sie möchten, dass die Benutzeroberfläche auch bei überlasteten E / A-Vorgängen weiterhin reibungslos funktioniert. Die Beantwortung ist jedoch kompliziert. Ihr System wird dies bereits nach besten Kräften tun: Vorgänge, für die kein Festplattenzugriff erforderlich ist, werden nicht verzögert. Wenn Ihre "Benutzeroberfläche stottert", liegt dies daran, dass der für diese Benutzeroberfläche verantwortliche Prozess Festplattenzugriff benötigt. In einer Situation mit wenig Arbeitsspeicher und wenn die Festplatte überlastet ist, kann selbst etwas, das normalerweise trivial ist - wie das Lesen einer Konfiguration aus Ihrem Home-Verzeichnis, um herauszufinden, welche Anzeigeeinstellungen Sie haben - aufgrund der Erschöpfung des Festplatten-Cache langsam sein.

Ich könnte mir so etwas wie ein "schönes" für den Speicher vorstellen (damit ich Chrome und meine VM schön machen kann)

Es gibt nicht wirklich ein "schön für die Erinnerung". Der Speicherzugriff ist so schnell, dass Sie ihn normalerweise praktisch ignorieren können. Wenn Sie Thrashing haben, ist es nicht Speicher, es ist Festplatte, das ist das Problem. Aus diesem Grund gibt es ein "Ionice". Obwohl ich das wahrscheinlich nicht für Ihr Problem empfehlen würde.

Ein weiteres grobes Äquivalent von "nice for memory" ist swap - Sie können nicht steuern, wie schnell jeder Prozess einzeln ist, aber das System ermittelt ziemlich gut, welche Prozesse Sie aktiv verwenden, und hat daher eine höhere Priorität, die beibehalten werden muss RAM.

Aber wie gesagt und wie es eine goldene Regel ist, wenn Ihnen der Arbeitsspeicher ausgeht, ist der Kauf von mehr Arbeitsspeicher die Lösung mit den geringsten Kopfschmerzen und Nachteilen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.