Moins swapper sous Linux

Gros utilisateur de Firefox et grand consommateur d'onglets, il arrivait souvent que ma machine plus toute jeune s'en trouve ralentie au point d'être inutilisable. Après une enquête dans les entrailles du système, l'un des coupables s'est dénoncé : la swappiness, ou tendance du système à swapper.

En effet, voici ce que j'obtenais en contrôlant la swappiness dans un terminal :

$ sudo cat /proc/sys/vm/swappiness
60

Un résultat de 60 signifie que la mémoire swap commence à être utilisée dès qu'il reste moins de 60% de la RAM disponible. Avec un ogre comme Firefox sur une machine avec à peine plus d'1 Go de RAM, cela arrive vite.

Le problème est que la swap est bien plus lente que la RAM, et que plus elle est utilisée, plus le système s'en retrouve ralenti. Il me faut donc réduire la tendance du système à swapper pour utiliser ma RAM au maximum :

$ sudo echo 15 > /proc/sys/vm/swappiness

Désormais, la swap ne commencera à être utilisée que lorsqu'il restera moins de 15% de RAM disponible. Attention, ce réglage est moins conservateur et plus risqué pour votre système. Vous êtes prévenu.

Dernier problème, ce réglage disparaîtra si l'on redémarre son système. Il faut donc l'activer automatiquement au démarrage. Pour cela, j'ai ajouté ce réglage au fichier /etc/sysctl.conf, qui contrôle l'initialisation des paramètres du noyau Linux :

$ sudo echo -e "# Decrease swappiness\nvm.swappiness = 15" >>/etc/sysctl.conf

Et voilà ! Grâce à cette astuce il m'est à présent plus agréable de travailler sur cette machine.

Qu'est-ce que la swap ?

Pour fonctionner, un programme a besoin de mémoire de travail, où il stockera les données dont il a besoin lors de son fonctionnement. Habituellement, ces données sont stockées en RAM, où l'accès sera très rapide. Mais lorsqu'il n'y a plus suffisamment de RAM, il faut bien stocker ces données quelque part, sinon le système ne pourra plus fonctionner. C'est pour cela qu'il existe la mémoire swap.

Les données en swap sont stockées sur le disque dur, où l'accès aux données est des centaines de fois plus lent qu'en RAM. C'est pourquoi plus un système utilise de mémoire swap, plus son exécution est lente.

Si l'on possède un système avec énormément de RAM, ou au contraire si on utilise régulièrement une application un peu trop gourmande pour son système, on peut souhaiter n'utiliser la swap qu'en dernier recours et stocker le maximum d'informations en RAM pour améliorer la rapidité du système. Cependant, régler la swapiness à zéro est peu recommandé (la swap ne serait jamais utilisée, même en cas d'urgence.

Vus : 493
Publié par Linalis : 17