Jeśli skonfiguruję wartość zamiany na inną, np. 60 na 0, to zawsze muszę ponownie uruchomić komputer, aby zmiany zostały wprowadzone? Nawet podczas modyfikacji za pomocą:
sysctl -w vm.swappiness=0
Jeśli skonfiguruję wartość zamiany na inną, np. 60 na 0, to zawsze muszę ponownie uruchomić komputer, aby zmiany zostały wprowadzone? Nawet podczas modyfikacji za pomocą:
sysctl -w vm.swappiness=0
Odpowiedzi:
Wszystko zostało dobrze wyjaśnione na podanej stronie Wikipedii.
# 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
W tym momencie system będzie zarządzał wymianą tak, jak właśnie ją skonfigurowałeś, ALE jeśli uruchomisz ponownie TERAZ, twoja zmiana zostanie zapomniana, a system będzie pracował z wartością domyślną (zakładając 60, co oznacza, że zacznie zamieniać przy 40% zajęcie pamięci RAM).
Musisz dodać poniższy wiersz, /etc/sysctl.conf
aby trwale wprowadzić zmiany:
vm.swappiness = 10
Mam nadzieję, że teraz jest to dla ciebie bardziej jasne!
musisz ponownie uruchomić komputer, aby zmiany zostały wprowadzone?
Wręcz przeciwnie - ponowne uruchomienie spowoduje zresetowanie zamiany do wartości domyślnej. Aby utrzymywał się podczas ponownego uruchamiania, musisz dołączyć dyrektywę do skryptu rozruchowego lub użyć metody zalecanej w artykule na Wikipedii, dodając:
vm.swappiness = ??
Do /etc/sysctl.conf
(lub /etc/sysctl.d
pliku), gdzie ??
jest wartość, której chcesz użyć. Pamiętaj, że samo dodanie tego nie spowoduje żadnych zmian w tym czasie.
Przyjęta odpowiedź jest poprawna, ale zaleca się użycie osobnego pliku konfiguracyjnego „sysctl”, aby przypadkowo nie zastąpić innych ustawień (co może się zdarzyć, jeśli zastąpisz globalny plik „sysctl.conf”).
# echo 'vm.swappiness=10' >/etc/sysctl.d/swappiness.conf
Ci, którzy już zmodyfikowali globalny plik konfiguracyjny „/etc/sysctl.conf”, mogą chcieć usunąć linie określające tę wartość „swapiness” z tego pliku. Możesz użyć tego polecenia, aby usunąć te wiersze z globalnego pliku konfiguracyjnego (zachowując komentarze):
# sed -i '/^vm.swappiness=/d' /etc/sysctl.conf
Teraz, aby zastosować nową wartość, powiedz, sysctl
aby jej użyć:
# sysctl -p /etc/sysctl.d/swappiness.conf
Lub zastosuj wszystkie ustawienia, w tym swapiness:
# sysctl -p /etc/sysctl.d/*
Sprawdź to:
# sysctl vm.swappiness
vm.swappiness = 10
Okazało się, że na komputerze CentOS , ten vm.swappiness
zestaw był w
/usr/lib/tuned/virtual-guest/tuned.conf
.
Określić, gdzie domyślna jest ustawiona patrząc przez tuned
pliki konfiguracyjne :
sudo grep -R swap /usr/lib/tuned | grep swappiness
Po zaktualizowaniu domyślnej bieżącej zamiany można nadal ustawić bez ponownego uruchamiania :
sudo sysctl vm.swappiness=10
i przetestowane przez:
cat /proc/sys/vm/swappiness
Użytkownik zmienia się sysctl
zgodnie z konwencją na pliki z prefiksem, 60-
więc nazwa pliku powinna być /etc/sysctl.d/60-swappiness.conf
. Wykonaj service procps start
jako root, aby wymusić ponowne odczytanie wartości konfiguracyjnych (ponowne uruchomienie nie jest konieczne).
-w
przełącznik ma zapisać zmianę. Można by pomyśleć, że po napisaniu tego, dodanie domyślnej linii w sysctl.conf nie byłoby konieczne.