Antworten:
Alles ist in der Wikipedia-Seite, die Sie gaben, gut erklärt.
# Set the swappiness value as root
echo 10 > /proc/sys/vm/swappiness
# Alternatively, run this as a non-root user
# This does the same as the previous command
sudo sysctl -w vm.swappiness=10
# Verify the change
cat /proc/sys/vm/swappiness
10
Zu diesem Zeitpunkt verwaltet das System den Swap so, wie Sie ihn gerade konfiguriert haben. ABER wenn Sie JETZT neu starten, wird Ihre Änderung vergessen und das System arbeitet mit dem Standardwert (unter der Annahme von 60, was bedeutet, dass der Swap bei 40% beginnt). Belegung des Arbeitsspeichers).
Sie müssen die folgende Zeile hinzufügen /etc/sysctl.conf
, um Ihre Änderung dauerhaft beizubehalten:
vm.swappiness = 10
Hoffe es ist jetzt klarer für dich!
Müssen Sie den Computer neu starten, damit die Änderungen wirksam werden?
Das Gegenteil ist der Fall: Durch einen Neustart wird die Swap-Funktion auf den Standardwert zurückgesetzt. Damit es auch nach einem Neustart erhalten bleibt, müssen Sie eine Direktive in ein Boot-Skript einfügen oder die im Wikipedia-Artikel empfohlene Methode anwenden, indem Sie Folgendes hinzufügen:
vm.swappiness = ??
An /etc/sysctl.conf
(oder eine /etc/sysctl.d
Datei), wo ??
ist der Wert, den Sie verwenden möchten. Beachten Sie, dass das Hinzufügen dieser Option zu keiner Änderung führt.
Die akzeptierte Antwort ist korrekt, es wird jedoch empfohlen, eine separate "sysctl" -Konfigurationsdatei zu verwenden, damit Sie nicht versehentlich andere Einstellungen überschreiben (was passieren kann, wenn Sie die globale "sysctl.conf" überschreiben).
# echo 'vm.swappiness=10' >/etc/sysctl.d/swappiness.conf
Diejenigen, die bereits die globale Konfigurationsdatei "/etc/sysctl.conf" geändert haben, möchten möglicherweise Zeilen entfernen, die diesen "swappiness" -Wert aus dieser Datei definieren. Sie können diesen Befehl verwenden, um diese Zeilen aus der globalen Konfigurationsdatei zu entfernen (unter Beibehaltung von Kommentaren):
# sed -i '/^vm.swappiness=/d' /etc/sysctl.conf
Um den neuen Wert anzuwenden, geben Sie sysctl
an, dass Sie ihn verwenden möchten:
# sysctl -p /etc/sysctl.d/swappiness.conf
Oder wenden Sie alle Einstellungen an, einschließlich der Austauschbarkeit:
# sysctl -p /etc/sysctl.d/*
Überprüfen Sie es:
# sysctl vm.swappiness
vm.swappiness = 10
Ich habe festgestellt, dass auf einem CentOS-Rechner das vm.swappiness
eingestellt wurde
/usr/lib/tuned/virtual-guest/tuned.conf
.
Bestimmen Sie, wo wird der Standard gesetzt wird , indem Sie durch tuned
Konfigurationsdateien :
sudo grep -R swap /usr/lib/tuned | grep swappiness
Nach dem Aktualisieren der Standardeinstellungen kann die aktuelle Swap-Funktion weiterhin eingestellt werden, ohne dass ein Neustart erforderlich ist :
sudo sysctl vm.swappiness=10
und getestet von:
cat /proc/sys/vm/swappiness
Benutzeränderungen an werden sysctl
nach Konvention in Dateien mit dem Präfix eingefügt, 60-
sodass der Dateiname so sein sollte /etc/sysctl.d/60-swappiness.conf
. Execute service procps start
als root eine Reread von Konfigurationswerten zu erzwingen (kein Neustart erforderlich).
-w
Schalter die Änderung schreiben soll. Man würde denken, dass das Hinzufügen der Standardzeile in sysctl.conf nach dem Schreiben nicht notwendig wäre.