Gérer le seuil d’utilisation de la SWAP
I. Présentation
Par défaut, les systèmes Linux commencent à décharger l'utilisation de la RAM sur la SWAP à partir de moins de 60% de la RAM restante. Autrement dit, quand la RAM est utilisée au dessus de 40%, le système peut commencer à utiliser la SWAP. Cela peut poser des problèmes car la SWAP utilise des ressources sur le disque dur ce qui peut alors, d'une part ralentir l'accès aux autres données, mais aussi ralentir le traitement des informations par la SWAP si le disque dur n'est pas performant. Dans ce tutoriel, nous allons apprendre à gérer le seuil d'utilisation de la SWAP.
II. Changement temporaire
Nous allons dans un premier temps voir comment faire un changement pour temporaire, cela signifie que la valeur sera réinitialisée à "60" au redémarrage de la machine. Par défaut, ce seuil est inscrit dans le fichier "/proc/sys/vm/swappiness". Voyons son contenu :
cat /proc/sys/vm/swappiness
On voit donc que le fichier contient "60", cela signifie que si il reste moins de 60% de la RAM disponible sur le système (non utilisée), celui-ci aura le droit de commencer à utiliser la SWAP. Si nous voulons modifier cette valeur pour déclencher l'utilisation de la SWAP plus tardivement, il nous faut simplement mettre un nombre plus petit dans ce fichier.
echo "30" > /proc/sys/vm/swappiness
A présent, le système pourra commencer à utiliser la SWAP uniquement si 70% de la RAM est utilisée.
III. Changement permanent
Pour que la valeur voulue ne soit pas réinitialisée au redémarrage de la machine, il faut ajouter la ligne suivante dans le fichier "/etc/sysctl.conf" :
vm.swappiness=30
La manipulation est enfantine, mais dans quels cas tu recommanderai de changer ce seuil ? Virtualisation ? Le réglage est-il persistant en cas d’upgrade de l’OS ?
J’ai eu l’occasion de faire cette manipulation pour des serveurs ayant des piques de charges très élevés mais également très court (dans une entreprise de développement informatique). La SWAP se vide souvent mal par rapport à la RAM et les données qui y sont stockés souffrent des lenteurs des accès en lecture des disques par rappot à la RAM, ce qui ralentissait l’ensemble des procédures et des tests unitaires de développement. J’ai donc augmenté le seuil d’utilisation de la SWAP pour qu’elle soit moins utilisée. J’étais sur des serveurs virtualisés mais ça n’a pas une grande importance.