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