Sie könnten tun, was Nik vorgeschlagen hat, und Swapoff verwenden . Es gibt jedoch eine andere, elegantere Möglichkeit, die "Swappiness" zu optimieren oder wie aggressiv der Kernel Programme auf Systemen in Systemen ausführt, auf denen die 2.6-Kernel ausgeführt werden.
In den Mailinglisten des Linux-Kernels gab es heftige Debatten über die Richtlinien, die der Kernel hinsichtlich des Austauschverhaltens befolgen sollte . Das Ergebnis ist, dass wir jetzt einen Patch in 2.6-Kerneln haben, mit dem wir dieses Verhalten weitgehend optimieren können.
Beachten Sie, dass Sie dazu Root-Berechtigungen benötigen, da Sie die Befehle swapoff / swapon ausführen würden.
Der aktuelle Wert von "swappiness" kann in der Datei / proc / sys / vm / swappiness oder durch Ausführen dieses Befehls sysctl überprüft werden :
sudo sysctl vm.swappiness
Die "Swapiness" -Werte können von 0 (kein Swap) bis 100 (so viel wie möglich auf die Festplatte tauschen) reichen . Ubuntu wird mit einer Standardeinstellung von 60 ausgeliefert.
Um dies für eine Sitzung zu ändern, rufen Sie sysctl erneut auf und übergeben Sie ihm einen Swappiness-Wert, der verwendet werden soll:
sudo sysctl vm.swappiness=30
Neben kostenlos können Sie die Auswirkungen natürlich auch über die hervorragenden Dienstprogramme htop oder iotop überwachen .
Wenn Ihnen das, was Sie sehen, gefällt und Sie diesen Wert bei Neustarts beibehalten möchten, fügen Sie einfach "vm.swappiness = 30" in die Datei /etc/sysctl.conf ein .
$ sudo sysctl vm.swappiness
vm.swappiness = 30
$ sudo sysctl vm.swappiness=40
vm.swappiness = 40
$ sudo sysctl vm.swappiness
vm.swappiness = 40
$ sudo tail /etc/sysctl.conf
#net.ipv4.conf.all.accept_source_route = 0
#net.ipv6.conf.all.accept_source_route = 0
#
# Log Martian Packets
#net.ipv4.conf.all.log_martians = 1
#
# The contents of /proc/<pid>/maps and smaps files are only visible to
# readers that are allowed to ptrace() the process
# kernel.maps_protect = 1
vm.swappiness=30
Sie können mit verschiedenen Werten spielen, bis Sie einen finden, der ein akzeptables Maß an Austausch auf Ihrem Computer erfordert.
Denken Sie daran, dass das Tauschmaterial zu einem geschäftigeren Zeitpunkt als jetzt dort abgelegt wurde.
Möglicherweise befinden sich die Daten auch im RAM - sie wurden zur Verwendung zurückgeladen, aber nicht vom Swap gelöscht. Der Kernel tut dies, um in der nächsten ausgelasteten Phase Zeit zu sparen. Wenn die Daten bereits dort kopiert wurden, kann er nur den von ihm verwendeten RAM freigeben, anstatt zuerst Festplattenschreibvorgänge ausführen zu müssen. Wenn Sie also nicht wissen, dass die Maschine in naher Zukunft nicht erneut ausgetauscht werden muss, kann das Erzwingen der Freigabe von Swap-Speicher nichts anderes bewirken, als die Dinge beim nächsten Austausch etwas langsamer zu machen.
Dies wird auf der Basis von Löschen und Schreiben verwaltet. Wenn also die Kopie im RAM aktualisiert wird, werden die Blöcke im Swap freigegeben.
Wenn der Swap-Speicherplatz für etwas anderes benötigt wird, was im Moment nicht der Fall ist, da Sie genügend freie Plätze haben, wird er natürlich für diese Verwendung freigegeben.
Sie können nicht sehen, wie viele Daten sich in diesem Zustand (sowohl auf festplattenbasierten Seiten in Auslagerungsbereichen als auch im RAM) in der Ausgabe von befinden
free
. Sie können es jedoch über das/proc
spezielle Dateisystem sehen. Schauen Sie sich die Ausgabe voncat /proc/meminfo
für dieSwapCached
Zählung an.Weitere zwei Gründe für die Verwendung von Swap, wenn anscheinend freier Speicher vorhanden ist, sind
free
Ausgabe ansehen, ist dies hier wahrscheinlich nicht der Fall haben einen Teil des wirklich nicht zugewiesenen RAM sowie den von E / A-Cache / Puffern verwendeten.quelle
Denken Sie daran, dass dies
free
nur eine Momentaufnahme der Speichernutzung ist. Das Ergebnis, das Sie sehen, könnte bedeuten, dass das System zu einem bestimmten Zeitpunkt in der Vergangenheit nicht genügend RAM hatte, sodass das RAM-residente Material ausgetauscht wurde. Seitdem ist der Arbeitsspeicher frei geworden, aber das Material für den Austausch wurde nicht benötigt, sodass er immer noch beim Austausch gehalten wird, anstatt nur den Arbeitsspeicher zu überladen. In diesem Fall wäre es eine schlechte Idee, den Swap auszuschalten. Gibt es Prozesse, die seit dem letzten Neuladen so viel RAM erfordern könnten?Darüber hinaus möchten Sie möglicherweise überprüfen, ob Sie keine Einschränkung für die maximale Größe der Bewohner haben, die über ulimit festgelegt wurde (normalerweise in / etc / profile, aber möglicherweise variiert sie mit den Distributionen und kann pro Prozess festgelegt werden (z. B. in einem Startskript). ).
Schließlich gibt es unter Microsoft Windows Berichte über bestimmte Probleme beim Auslagern von Firefox auf die Festplatte, z. B. wenn diese minimiert sind (z http://joeabiraad.com/mozilla-firefox/control-your-firefox-ram-usage/113 ). Ich habe auf GNU / Linux-Systemen noch nichts davon gehört, aber es könnte sich lohnen, es zu erkunden.
quelle