it-swarm.com.de

Linux: Wie kann man alles Mögliche explizit entpacken?

Ich habe etwas gestartet, das viel Speicher benötigt hat, und jetzt bleibt alles sehr zurück. Ich denke, der Speicher aller Anwendungen wurde ausgetauscht, um Speicherplatz für den speicherintensiven Prozess freizugeben, und jetzt kehrt beim Zugriff langsam alles zu RAM zurück).

Gibt es eine Möglichkeit, alles Mögliche explizit vom Swap zurück in den RAM zu verschieben? Oder vielleicht nicht alles, sondern nur bestimmte Prozessdaten?

61
kolypto

Ich würde empfehlen, den normalen Linux-Speichersteuerungsaustausch in den tatsächlich verwendeten Dingen zuzulassen, so wie sie verwendet werden.

Das einzige, woran ich denken kann, ist, den Tausch aus- und wieder einzuschalten

Sudo swapoff -a
Sudo swapon -a

Dies setzt voraus, dass Sie über genügend physischen Speicher verfügen, um alles im Swap zu enthalten ...

61
Douglas Leeder

Sie können es so einstellen, dass eine Zahl zwischen 0 und 100 in /proc/sys/vm/swappiness .

Mit diesem Steuerelement wird festgelegt, wie aggressiv der Kernel Speicherseiten austauscht. Höhere Werte erhöhen die Aggressivität, niedrigere Werte verringern den Swap-Betrag . Der Wert 0 weist den Kernel an, den Austausch nicht zu initiieren, bis die Anzahl der freien und dateibasierten Seiten unter der High-Water-Marke in einer Zone liegt.

Der Standardwert ist 60.

13
sntg

Linux leistet gute Arbeit bei der Speicherverwaltung, und Sie sollten sich nicht in den Weg stellen. Die zuvor erwähnte Einstellung vm.swappiness steht nicht im Weg. Es ist wahrscheinlicher, dass Sie seltsame Probleme haben, wenn Sie Dinge auf andere Weise tun.

Was hast du gestartet, das so speicherhungrig war? Kann es abgestimmt werden? Wenn es keine eigenen Speicherbeschränkungsanweisungen hat, können Sie sich auch ulimit ansehen.

5
CarpeNoctem

Wenn Sie den Speicher für alle Ihre Anwendungen zur Verfügung haben, können Sie die Swappiness auf 0 setzen, damit die Dinge nicht ausgetauscht werden. Zum Beispiel ist qemu-kvm ein großes Ziel, das der VMM austauschen soll, da er die meiste Zeit "untätig" zu sein scheint. Ich habe gesehen, dass bis zu 80% des Speichers eines Qemu-KVM-Speichers zum Tauschen geschrieben werden. Die VMs, die in qemu-kvm ausgeführt werden, reagieren fast nicht mehr, da ihnen der Swap ausgeht (obwohl der Gast keine Ahnung hat, dass dies geschieht). Der Gast VM wird denken, dass es am besten funktioniert, obwohl es in Wahrheit furchtbar schleppt. Wenn ich ein paar VMs "aufwache" und anfange, Dinge zu tun, kann dies den Lastdurchschnitt erhöhen bis auf über 30, selbst auf Hardware für Unternehmen mit ausreichend schnellem Speicher und Festplatte. Ich denke, dies ist ein Fehler im sofort einsatzbereiten Qemu-KVM-Design.

Hoffe das hilft jemandem.

3
Gruic

Ich würde davon abraten, das Subsystem VM im Kernel) zu überdenken. Es ist EXTREM unwahrscheinlich, dass Sie tatsächlich über genügend Informationen verfügen, um bessere Entscheidungen zu treffen, als dies der Fall ist. Und wenn Sie dies irgendwie erzwingen Wenn Sie das Falsche tun, werden Sie die Dinge am Ende nur noch langsamer machen.

2
Michael Kohne

Wenn Sie in der Lage sind, das System neu zu starten, sollte dies der Fall sein (und dies kann viel weniger Zeit in Anspruch nehmen als das Ausprobieren einer anderen Lösung).

1
Maximus Minimus

Um einige meiner Antworten von diese Frage zu kopieren.

Damit Sie wissen, wie die Swapiness-Einstellung funktioniert. Dies funktioniert, indem das VM - Subsystem angewiesen wird, nach Seiten zu suchen, die ausgetauscht werden sollen, wenn der Prozentsatz des Speichers, der für die Verarbeitung von Seitentabellen + Swapiness-Wert zugeordnet ist,> 100 ist. Bei einer Einstellung von 60 wird das System gestartet Ausblenden veralteter Seiten aus der Prozessseitentabelle, wenn mehr als 40% des Systemspeichers belegt sind. Wenn Sie Ihren Programmen erlauben möchten, mehr Speicher auf Kosten des Caches zu verwenden, sollten Sie den Swappiness-Wert verringern.

1
3dinfluence

Ich glaube, dass es keinen wirklich guten Weg gibt, Linux zu zwingen, Daten von der Festplatte in den Speicher zu entfernen. Wenn Swapoff/Swapon eine funktionierende Lösung ist, aber verschmutzt ist und Ihr System leicht instabil machen kann. In den Fällen, in denen mehr Daten im Swap als im freien Speicher vorhanden sind, ist es kaum vorstellbar, mit welcher effizienten Richtlinie Linux entscheiden kann, welche Daten in den Speicher verschoben werden und welche auf der Festplatte gespeichert werden.

Zusammenfassung: Lassen Sie Linux seine Leistung auf die normale Weise schrittweise wiederherstellen. Das Subsystem VM VM) ist so organisiert, dass es sich bemüht und ständig in einen idealen ausgeglichenen Zustand übergeht.

0
ZarathustrA

Läuft der Prozess noch? Öffnen Sie ein Terminal und prüfen Sie, ob Sie die gestarteten Prozesse erkennen können. (Der Prozessname ps aux | grep macht es möglicherweise etwas einfacher.) Verwenden Sie kill -9 PID, um sie zu beenden, wenn sie noch ausgeführt werden. Sei vorsichtig mit dem, was du tötest. Wenn Sie nicht wissen, was der Prozess ist, töten Sie ihn nicht! Veröffentlichen Sie außerdem die Ausgabe von free -m, damit wir sehen können, ob Sie tatsächlich noch viel Swap verwenden.

Wenn die Dinge immer noch langsam laufen, läuft möglicherweise immer noch alles, was Sie gestartet haben. Ich würde den Tausch niemals ausschalten, wenn Sie nicht wirklich wissen, was Sie tun oder gerne am Rande leben. =)

0
jdoss