Wenn ich eine RAM-intensive App öffne (VirtualBox auf 2 GB RAM eingestellt), wird in der Regel ein Teil des Auslagerungsspeichers verwendet, je nachdem, was ich zu diesem Zeitpunkt noch geöffnet habe.
Wenn ich diese letzte Anwendung beende, werden 2 GB RAM freigegeben, aber derselbe Swap-Speicher bleibt erhalten.
Zum Beispiel habe ich gerade, ungefähr zwei Stunden nach dem Schließen von VirtualBox, 1,6 GB freien RAM und immer noch 770 MB im Swap.
Wie kann ich Ubuntu anweisen, diesen Swap nicht mehr zu verwenden und wieder den Arbeitsspeicher zu verwenden?
performance
swap
ram-usage
jfoucher
quelle
quelle
Antworten:
Nur weil Swap zugewiesen wird, heißt das noch lange nicht, dass er "verwendet" wird. Während Programme wie system monitor und top einen Teil des zugewiesenen Swap-Speicherplatzes anzeigen (in Ihrem Beispiel 770 MB), bedeutet dies nicht, dass das System aktiv ein- / auslagert.
Mit dem
vmstat
Befehl können Sie herausfinden, ob sich etwas in der Zwischenzeit befindet . Lassen Sie es einige Sekunden laufen, um sich zu beruhigen und diesi
Spalten (Swapin) undso
(Swapout) zu beobachten. Wenn nichts passiert, gibt es keinen Grund zur Sorge.Hier ist die Ausgabe von "Laufen"
vmstat 1
, bei der Sie sehen können, dass meine Maschine überhaupt nicht wechselt.Doch hier in sehen
top
Sie, ich habe Swap Space zugewiesen: -quelle
Der Linux-Kernel, der Ubuntu zugrunde liegt, "tauscht" diese Seiten bei Bedarf automatisch von der Festplatte in den Arbeitsspeicher aus. Im Allgemeinen würde ich also sagen, dass dies ganz natürlich geschehen soll.
Wenn Sie jedoch wirklich das Gefühl haben, dass Sie es erzwingen müssen (ich sehe ein Szenario, in dem Sie wissen möchten, dass das System später reagiert), können Sie Swap für einen Moment deaktivieren und wieder aktivieren
ODER alternativ als einzelne Zeile
Gehen Sie dabei vorsichtig vor, da Ihr System möglicherweise instabil wird, insbesondere, wenn der Arbeitsspeicher bereits niedrig ist.
quelle
Sie können auch Ihren "swappiness" -Wert auf den Standardwert von 60 einstellen. Auf diese Weise wird der Swap zunächst nicht so groß. Warum der Standardversand auf 60 eingestellt ist, wenn der empfohlene Wert 10 ist, ist mir ein Rätsel. Aus dem Ubuntu SwapFAQ :
Indem Sie diesen Wert auf 10 oder sogar 0 ändern, können Sie einem älteren System mit langsamer Fahrt einen deutlichen und wahrnehmbaren Geschwindigkeitsschub hinzufügen. Wenn Sie diesen Wert auf 0 setzen, wird Swap für Linux-Kernel 3.4 und niedriger nicht deaktiviert. Ab Version 3.5 sollten Sie jedoch den Wert 1 verwenden, wenn Sie die niedrigste Einstellung * beibehalten möchten.
Ich sehe keinen Grund, dies nicht auf 0 zu setzen, da alles, was die Festplatte trifft, langsamer als RAM ist. Ich habe 8 virtuelle Kerne, eine schnelle SSD und 8 GB Arbeitsspeicher, und mein Swap ist auf 0 gesetzt. Ab diesem Moment sind 3 virtuelle Maschinen aktiv, mein Arbeitsspeicherbedarf beträgt 7,1 von 7,7 GB, mein genutzter Swap beträgt nur 576 KB 952MB und alle Systeme laufen reibungslos!
Aus dem Ubuntu SwapFAQ :
Im Folgenden finden Sie grundlegende Anweisungen zum Überprüfen der Swap-Fähigkeit, zum Leeren der Swap-Fähigkeit und zum Ändern der Swap-Fähigkeit auf 0:
So überprüfen Sie den Swappiness-Wert:
So setzen Sie Swap vorübergehend auf 0 ( wie von SpamapS vorgeschlagen ):
Dadurch wird Ihr Swap geleert und der gesamte Swap wird zurück in den Speicher übertragen. Stellen Sie zunächst sicher, dass genügend Arbeitsspeicher verfügbar ist, indem Sie die Registerkarte "Ressourcen" von gnome-system-monitor anzeigen. Der verfügbare Arbeitsspeicher sollte größer sein als der von Ihnen verwendete Swap. Dieser Vorgang kann eine Weile dauern. Verwenden Sie gnome-system-monitor, um den Fortschritt zu überwachen und zu überprüfen.
So setzen Sie den neuen Wert auf 0:
So schalten Sie den Swap wieder ein:
So setzen Sie swappiness dauerhaft auf 0:
sudoedit /etc/sysctl.conf
vm.swappiness = 0
sudo shutdown -r now
# System neu starten* Mit der Kernel-Version 3.5+ wird das Setzen von swappiness auf 0 vollständig deaktiviert und die Einstellung 1 wird empfohlen, wenn Sie den niedrigsten swappiness-Algorithmus wünschen. Quelle: https://www.percona.com/blog/2014/04/28/oom-relation-vm-swappiness0-new-kernel/
quelle
Ich habe festgestellt, dass das Leeren von Swap auf Systemen mit langsamen Festplatten und begrenztem RAM sehr hilfreich sein kann. Natürlich ist, wie bereits erwähnt, der Weg, dies zu tun, zu laufen
sudo swapoff -a; sudo swapon -a
. Das Problem hierbei ist, dass bei unzureichendem RAM alle möglichen Probleme auftreten.Ich habe ein Skript geschrieben, das ich nenne und
toggle_swap
das seit einigen Jahren für mich funktioniert. Es wird nach genügend freiem RAM gesucht, bevor der Swap deaktiviert wird. Hier ist es:quelle
Nachdem ich ein paar Tage mit Swappiness rumgespielt habe, bin ich zu dem Schluss gekommen, dass der Kernel auf seine eigenen Geräte gestellt werden sollte. Es weiß, was es tut, und es ist optimiert, um Ihnen die beste Erfahrung zu bieten.
Wenn Sie keinen guten Grund haben, diese Festplatte zurück zu wollen, lasse ich es.
quelle
Die Leistung wird dadurch nicht beeinträchtigt, wenn der Swap-Bereich belegt ist. Die einzige Leistungseinbuße ist, dass Sachen in / aus dem Tausch gehen. Wenn nichts ausgetauscht wird, müssen Sie sich um nichts kümmern.
quelle