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
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
Réponses:
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.conf
pour conserver votre modification de façon permanente:
vm.swappiness = 10
J'espère que c'est plus clair pour vous maintenant!
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.d
fichier), où ??
est la valeur que vous souhaitez utiliser. Notez que l'ajout de cela n'entraînera aucun changement à ce moment-là.
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 sysctl
de 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
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 tuned
les 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
Les modifications apportées aux utilisateurs sysctl
par 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 start
tant que root pour forcer une relecture des valeurs de configuration (aucun redémarrage nécessaire).
-w
commutateur 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.