Чи потрібна зміна заміщення перезавантаження?


14

Якщо я налаштував значення заміщення на інше, наприклад: 60 до 0, то мені завжди потрібно перезавантажити машину, щоб зміни вступили в силу? Навіть при зміні за допомогою:

sysctl -w vm.swappiness=0

Відповіді:


25

Все добре пояснено на наданій вами сторінці у Вікіпедії.

# 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 не буде необхідним.
WEBjuju

Привіт WEBjuju, Ви маєте рацію, комутатор все ще не працює для мене (fedora 25 або centos 7). Тоді це не потрібно, оскільки зміна живого значення у / proc файлі все-таки здійснюється без будь-якого.
tisc0

7

потрібно перезавантажити машину, щоб зміни вступили в силу?

Насправді навпаки - перезавантаження сканує скидання до значення за замовчуванням. Для того, щоб він зберігався під час перезавантаження, вам потрібно включити директиву в сценарій завантаження або скористатися методом, рекомендованим у статті wikipedia, додавши:

vm.swappiness = ??

До /etc/sysctl.conf(або /etc/sysctl.dфайлу), де ??значення, яке ви хочете використовувати. Зауважте, що додавання цього не спричинить жодних змін на той час.


1

Прийнята відповідь правильна, але рекомендується використовувати окремий конфігураційний файл "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

Або застосувати всі налаштування, включаючи заміщення:

# sysctl -p /etc/sysctl.d/*

Перевірте це:

# sysctl vm.swappiness
vm.swappiness = 10

Погоджено, це найкраща практика, яка робить яснішими та безпечнішими. Хороша звичка і при використанні інструменту управління конфігурацією.
tisc0

1

Я виявив , що на машині 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

1
/etc/tuned/tuned-main.conf (RHEL7) має налаштування, яке дозволяє /etc/sysctl.conf, /etc/sysctl.d тощо, змінювати параметри, застосовані налаштованими (тобто reapply_sysctl = 1). Принаймні на моєму встановленні, це за замовчуванням.
kbulgrien

0

Користувацькі зміни sysctlза умовами переходять у файли з префіксом, 60-тому має бути ім'я файлу /etc/sysctl.d/60-swappiness.conf. Виконати service procps startяк root, щоб примусити перечитати значення конфігурації (перезавантаження не потрібно).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.