Если я настраиваю значение подкачки для другого, например, от 60 до 0, то мне всегда нужно перезагружать машину, чтобы изменения вступили в силу? Даже при изменении с:
sysctl -w vm.swappiness=0
Все хорошо объяснено на странице Википедии, которую вы дали.
# 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
На этом этапе система будет управлять свопом так, как вы только что его настроили, НО, если вы перезагрузите СЕЙЧАС, ваши изменения будут забыты, и система будет работать со значением по умолчанию (при условии 60, то есть, после этого своп начнется при 40%). занятие оперативной памяти).
Вы должны добавить строку ниже, /etc/sysctl.conf
чтобы сохранить изменения навсегда:
vm.swappiness = 10
Надеюсь, теперь это станет понятнее!
-w
переключатель должен записывать изменения. Можно подумать, что после написания этого, добавление строки по умолчанию в sysctl.conf не потребуется.На самом деле, наоборот - перезагрузка сбрасывает swappiness на значение по умолчанию. Чтобы это сохранялось при перезагрузках, вам нужно включить директиву в загрузочный скрипт или использовать метод, рекомендованный в статье в Википедии, добавив:
To
/etc/sysctl.conf
(или/etc/sysctl.d
файл), где??
находится значение, которое вы хотите использовать. Обратите внимание, что простое добавление этого не приведет к изменениям в данный момент.источник
Принятый ответ правильный, но рекомендуется использовать отдельный файл конфигурации "sysctl", чтобы вы не могли случайно перезаписать другие настройки (что может произойти, если вы перезаписали глобальный "sysctl.conf").
Те, кто уже изменил глобальный конфигурационный файл "/etc/sysctl.conf", могут захотеть удалить строки, определяющие это значение "swappiness" из этого файла. Вы можете использовать эту команду для удаления этих строк из глобального конфигурационного файла (с сохранением комментариев):
Теперь, чтобы применить новое значение, скажите
sysctl
использовать его:Или примените все настройки, включая swappiness:
Проверьте это:
источник
Я обнаружил , что на машине CentOS , в
vm.swappiness
в настоящее время набор в/usr/lib/tuned/virtual-guest/tuned.conf
.Определите , где по умолчанию создается , глядя через
tuned
файлы конфигурации :После обновления по умолчанию текущая перестановка все еще может быть установлена без перезагрузки :
и проверено:
источник
Пользовательские изменения в соответствии
sysctl
с соглашением идут в файлы с префиксом,60-
поэтому имя файла должно быть/etc/sysctl.d/60-swappiness.conf
. Выполнитеservice procps start
от имени пользователя root, чтобы принудительно перечитать значения конфигурации (перезагрузка не требуется).источник