Wie konfiguriere ich Swappiness in Linux Memory Management?

11

Der Parameter swappiness steuert die Tendenz des Kernels, Prozesse aus dem physischen Speicher auf die Auslagerungsdiskette zu verschieben. Was ist die Standardeinstellung und wie konfiguriert man diese, um die Gesamtleistung zu verbessern ?

GAD3R
quelle
3
Nachdem ich die Swapiness geändert hatte, fand ich es nützlich, den Swap mit swapoff -azu leeren, um von vorne zu beginnen. serverfault.com/a/354384/203035
Nemo

Antworten:

10

Der Linux-Kernel bietet eine optimierbare Einstellung, die den Austausch steuert

$ cat /proc/sys/vm/swappiness
60  

/etc/sysctl.confals root öffnen . Ändern Sie dann diese Zeile oder fügen Sie sie der Datei hinzu:

vm.swappiness = 10

Versuchen Sie diesen Befehl, um den Swappiness-Wert vorübergehend zu ändern:

$ echo 50 > /proc/sys/vm/swappiness
Mischling
quelle
1
Wie antwortet es: "Wie konfiguriere ich das, um die Gesamtleistung zu verbessern?"
Techraf
Das Austauschen ist erforderlich, wenn die Leistung Ihres Systems langsam ist, da es manchmal passiert, wenn Ihnen der nutzbare Arbeitsspeicher ausgeht, was Ihr System verlangsamt hätte (möglicherweise sogar abgestürzte Anwendungen), selbst wenn Sie keinen Austausch gehabt hätten. Um die Dinge zu vereinfachen, geschieht das Austauschen, weil Ihr System festgefahren ist und nicht umgekehrt - und in einigen Fällen kann es den Tag retten.
Mischling
2
Müssen Sie nicht auch sudo sysctl -p /etc/sysctl.confÄnderungen vornehmen?
Karamol
11

Aus Swappiness, Wikipedia

Sie können diesen Wert in einer virtuellen Datei festlegen. /proc/sys/vm/swappiness Der angegebene Wert entscheidet darüber, wie der Auslagerungsbereich verwendet werden soll. Nachfolgend sind die Werte mit ihren Absichten aufgeführt.

vm.swappiness = 0   # Swap is disabled. In earlier versions, this meant that the kernel would swap only to avoid an out of memory condition, but in later versions this is achieved by setting to 1.
vm.swappiness = 1   # Kernel version 3.5 and over, as well as kernel version 2.6.32-303 and over: Minimum amount of swapping without disabling it entirely.
vm.swappiness = 10  # This value is sometimes recommended to improve performance when sufficient memory exists in a system, this value *10* could be considered for the performance being expected. 
vm.swappiness = 60  # The default value.
vm.swappiness = 100 # The kernel will swap aggressively.

Obwohl dies auch von der Notwendigkeit abhängt, besteht bei ausreichendem verfügbaren physischen Speicher möglicherweise kein großer Bedarf an Swap-Speicherplatz. Nach Laymans Worten besteht keine Notwendigkeit, den Standardwert von zu ändern 60.

Keyshov Borate
quelle
@techraf hat die Antwort aktualisiert.
Keyshov Borate
1
In VMs empfehle ich dennoch, es für alle Fälle auf 10 zu ändern.
Rui F Ribeiro
2

In RedHat / CentOS ist der Standardwert 60.
"Um die Leistung zu verbessern" ist ein sehr weit gefasster Begriff. Welche Leistung möchten Sie verbessern?

Haben Sie Probleme mit wenig Speicher?
Wechselt Ihr System, wenn noch freier Speicher / zwischengespeicherter Speicher vorhanden ist?

Unter Linux ist freier RAM = verschwendeter RAM, sodass fast der gesamte freie Speicher für Disc-Caches verwendet wird.
Es gibt Fälle mit swappiness = 60, in denen Seiten im Speicher nach SWAP verschoben werden, wenn über einen längeren Zeitraum nicht auf sie zugegriffen wurde, unabhängig davon, ob Sie nicht zugewiesenen RAM haben.
Das Verschieben einiger Speicherseiten nach SWAP ist keine schlechte Sache.

Bitte werfen Sie etwas mehr Licht auf Ihr Problem, um eine detailliertere Antwort zu erhalten.

Feuer
quelle