Le changement de swappiness nécessite-t-il un redémarrage?

14

Si je configure la valeur de swappiness à une autre, par exemple: 60 à 0, alors je dois toujours redémarrer la machine pour que les modifications prennent effet? Même en modifiant avec:

sysctl -w vm.swappiness=0
évachristine
la source

Réponses:

25

Tout est bien expliqué dans la page Wikipédia que vous avez donnée.

# 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

À ce stade, le système gérera l'échange comme vous venez de le configurer, MAIS si vous redémarrez MAINTENANT, votre modification sera oubliée et le système fonctionnera avec la valeur par défaut (en supposant 60, ce qui signifie qu'il commencera à échanger à 40% occupation de la RAM).

Vous devez ajouter la ligne ci-dessous /etc/sysctl.confpour conserver votre modification de façon permanente:

vm.swappiness = 10

J'espère que c'est plus clair pour vous maintenant!

tisc0
la source
Il est intéressant de noter que le -wcommutateur est censé écrire le changement. On pourrait penser qu'après avoir écrit cela, ajouter la ligne par défaut dans sysctl.conf ne serait pas nécessaire.
WEBjuju
Salut WEBjuju, Vous avez raison, le commutateur ne fonctionne toujours pas pour moi (fedora 25 ou centos 7). Ce n'est pas nécessaire alors, car la modification de la valeur en direct dans le fichier / proc se fait de toute façon sans.
tisc0
7

besoin de redémarrer la machine pour que les modifications prennent effet?

Le contraire, en fait - le redémarrage réinitialisera la permutation à sa valeur par défaut. Pour le faire persister après les redémarrages, vous devez inclure une directive dans un script de démarrage ou utiliser la méthode recommandée dans l'article wikipedia en ajoutant:

vm.swappiness = ??

Pour /etc/sysctl.conf(ou un /etc/sysctl.dfichier), où ??est la valeur que vous souhaitez utiliser. Notez que l'ajout de cela n'entraînera aucun changement à ce moment-là.

boucle d'or
la source
1

La réponse acceptée est correcte, mais il est recommandé d'utiliser un fichier de configuration "sysctl" distinct afin de ne pas écraser accidentellement d'autres paramètres (ce qui peut se produire si vous écrasez le "sysctl.conf" global).

# echo 'vm.swappiness=10' >/etc/sysctl.d/swappiness.conf

Ceux qui ont déjà modifié le fichier de configuration global "/etc/sysctl.conf" pourraient vouloir supprimer les lignes définissant cette valeur "swappiness" de ce fichier. Vous pouvez utiliser cette commande pour supprimer ces lignes du fichier de configuration global (en conservant les commentaires):

# sed -i '/^vm.swappiness=/d' /etc/sysctl.conf

Maintenant, pour appliquer la nouvelle valeur, dites sysctlde l'utiliser:

# sysctl -p /etc/sysctl.d/swappiness.conf

Ou appliquez tous les paramètres, y compris la permutation:

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

Vérifiez-le:

# sysctl vm.swappiness
vm.swappiness = 10
basic6
la source
D'accord, c'est une meilleure pratique, ce qui rend les choses plus claires et plus sûres. Une bonne habitude aussi lors de l'utilisation d'un outil de gestion de configuration.
tisc0
1

J'ai trouvé que sur une machine CentOS , le vm.swappinessétait installé /usr/lib/tuned/virtual-guest/tuned.conf.

Déterminez où la valeur par défaut est définie en parcourant tunedles fichiers de configuration :

sudo grep -R swap /usr/lib/tuned | grep swappiness

Après la mise à jour de la valeur par défaut, la permutation actuelle peut toujours être définie sans redémarrage :

sudo sysctl vm.swappiness=10

et testé par:

cat /proc/sys/vm/swappiness
WEBjuju
la source
1
/etc/tuned/tuned-main.conf (RHEL7) a un paramètre qui permet à /etc/sysctl.conf, /etc/sysctl.d, etc., de remplacer les paramètres appliqués par tuned (ie reapply_sysctl = 1). Au moins sur mon installation, c'est la valeur par défaut.
kbulgrien
0

Les modifications apportées aux utilisateurs sysctlpar convention vont dans des fichiers avec le préfixe, 60-donc le nom de fichier doit être /etc/sysctl.d/60-swappiness.conf. Exécutez en service procps starttant que root pour forcer une relecture des valeurs de configuration (aucun redémarrage nécessaire).

Doug Munch
la source