Benötigt das Wechseln der Einstellungen einen Neustart?

14

Wenn ich den Swap- Wert auf einen anderen konfiguriere, z. B . : 60 bis 0, muss ich den Computer immer neu starten, damit die Änderungen wirksam werden? Auch beim Ändern mit:

sysctl -w vm.swappiness=0
evachristine
quelle

Antworten:

25

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!

tisc0
quelle
Es ist interessant, dass der -wSchalter die Änderung schreiben soll. Man würde denken, dass das Hinzufügen der Standardzeile in sysctl.conf nach dem Schreiben nicht notwendig wäre.
WEBjuju
Hallo WEBjuju, Du hast recht, der Schalter funktioniert bei mir immer noch nicht (Fedora 25 oder Centos 7). Dies ist dann nicht erforderlich, da das Ändern des Live-Werts in der / proc-Datei ohnehin nicht erforderlich ist.
Tisc0
7

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.dDatei), wo ??ist der Wert, den Sie verwenden möchten. Beachten Sie, dass das Hinzufügen dieser Option zu keiner Änderung führt.

Goldlöckchen
quelle
1

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 sysctlan, 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
basic6
quelle
Einverstanden, es ist eine bewährte Methode, die die Dinge klarer und sicherer macht. Eine gute Angewohnheit, wenn Sie ein Konfigurationsmanagement-Tool verwenden.
Tisc0
1

Ich habe festgestellt, dass auf einem CentOS-Rechner das vm.swappinesseingestellt wurde /usr/lib/tuned/virtual-guest/tuned.conf.

Bestimmen Sie, wo wird der Standard gesetzt wird , indem Sie durch tunedKonfigurationsdateien :

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
WEBjuju
quelle
1
/etc/tuned/tuned-main.conf (RHEL7) hat eine Einstellung, mit der /etc/sysctl.conf, /etc/sysctl.d usw. die von tuned angewendeten Einstellungen überschreiben können (dh reapply_sysctl = 1). Zumindest bei meiner Installation ist dies die Standardeinstellung.
kbulgrien
0

Benutzeränderungen an werden sysctlnach 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 startals root eine Reread von Konfigurationswerten zu erzwingen (kein Neustart erforderlich).

Doug Munch
quelle