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
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!
-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.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:
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.źródło
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”).
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):
Teraz, aby zastosować nową wartość, powiedz,
sysctl
aby jej użyć:Lub zastosuj wszystkie ustawienia, w tym swapiness:
Sprawdź to:
źródło
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 :Po zaktualizowaniu domyślnej bieżącej zamiany można nadal ustawić bez ponownego uruchamiania :
i przetestowane przez:
źródło
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
. Wykonajservice procps start
jako root, aby wymusić ponowne odczytanie wartości konfiguracyjnych (ponowne uruchomienie nie jest konieczne).źródło