samedi 14 novembre 2009

Optimiser l’utilisation de la RAM et du SWAP


Sous Linux existe une partition “swap” qui permet de créer une “zone d’échange” pour augmenter la mémoire virtuelle en dépassant les limites réelles de la mémoire vive disponible sur la machine.

L’utilisation de la mémoire vive par rapport à la swap est fixée par une variable : swappiness.

Par défaut, cette variable est fixée à 60 sur une échelle qui va de 0 à 100.
Plus cette valeur est élevée plus le système va avoir tendance à utiliser le swap au détriment de l’utilisation de la mémoire vive.

Ajuster cette variable peut améliorer les performances du système.

Deux écoles s'opposent sur ce sujet:

La première école considère que les temps d'accès à la RAM étant de l'ordre de quelques nanosecondes, ils sont plus rapides que les temps d'accès du disque dur qui sont de quelques millisecondes. Celle-ci préconisse donc un swappiness de 10.
La deuxième école considère que permettre à des applications "gloutonnes" de monopoliser des centaines de Mo de mémoire vive est une aberration. Et qu'il est donc préférable de prendre ces Mo directement sur le disque de façon à garder l'usage de la mémoire vive à quelque chose de plus utile. Cette deuxième école préconisse un swappiness de 100 !

Laquelle des deux options choisir ?
De mon point de vue, cela dépend de la quantité de Ram installée et de la consommation de mémoire faite par les applications que vous utilisez couramment, autrement dit de la quantité de mémoire Ram qui reste disponible dans votre usage courant.
Peu de Ram libre : passez à un swappiness de 100
Beaucoup de Ram libre : passez à un swappiness de 10.

A vous de tester le paramétrage qui vous convient le mieux avec les commandes suivantes.

Les commandes:

Connaitre la valeur du swappiness :
cat /proc/sys/vm/swappiness

Pour modifier temporairement cette valeur :
sudo sysctl -w vm.swappiness=100

Pour que cette nouvelle valeur soit prise en compte, désactivez et réactivez le swapping :
sudo swapoff -av
sudo swapon -av

Pour que cette valeur soit appliquée définitivement, éditer le fichier sysctl.conf :
gksu gedit /etc/sysctl.conf
et ajouter la ligne suivante:
vm.swappiness = 100

Le changement sera alors effectif au prochain démarrage de l'ordinateur.

.

Aucun commentaire:

Enregistrer un commentaire