Le noyau Linux fournit un paramètre modifiable qui contrôle la fréquence d'utilisation du fichier d'échange, appelé swappiness.
Un paramètre de permutation de zéro signifie que le disque sera évité à moins que cela ne soit absolument nécessaire (vous manquez de mémoire), tandis qu'un paramètre de swappiness de 100 signifie que les programmes seront échangés sur le disque presque instantanément.
Le système Ubuntu est livré avec une valeur par défaut de 60, ce qui signifie que le fichier d'échange sera utilisé assez souvent si l'utilisation de la mémoire est environ la moitié de ma RAM. Vous pouvez vérifier la valeur de swap de votre propre système en exécutant :
one@onezero:~$ cat /proc/sys/vm/swappiness
60
Comme je dispose de 4 Go de RAM, j'aimerais réduire ce chiffre à 10 ou 15. Le fichier d'échange ne sera alors utilisé que lorsque mon utilisation de la RAM sera d'environ 1 Go. 80 o 90 pour cent. Pour changer la valeur de permutation du système, ouvrez /etc/sysctl.conf
comme racine . Ensuite, modifiez ou ajoutez cette ligne au fichier :
vm.swappiness = 10
Appliquez la modification.
sudo sysctl -p
Vous pouvez également modifier la valeur pendant que votre système est encore en fonctionnement avec :
sysctl vm.swappiness=10
Vous pouvez également effacer votre swap en exécutant swapoff -a
et ensuite swapon -a
en tant que root au lieu de redémarrer pour obtenir le même effet.
Pour calculer votre formule de swap :
free -m (total) / 100 = A
A * 10
root@onezero:/home/one# free -m
total used free shared buffers cached
Mem: 3950 2262 1687 0 407 952
-/+ buffers/cache: 903 3047
Swap: 1953 0 1953
donc le total est 3950 / 100 = 39.5 * 10 = 395
Donc ce que ça veut dire c'est que quand 10 % (395 Mo) de mémoire vive restante, il commencera à utiliser le swap.
Qu'est-ce que l'échange ?
Le paramètre swappiness contrôle la tendance du noyau à déplacer les processus de la mémoire physique vers le disque swap. Les disques étant beaucoup plus lents que la RAM, cela peut entraîner des temps de réponse plus lents pour le système et les applications si les processus sont trop agressivement déplacés hors de la mémoire.
-
swappiness
peut avoir une valeur comprise entre 0 et 100.
-
swappiness=0
:
- Noyau version 3.5 et plus récente : désactive la permutation.
- Version du noyau antérieure à 3.5 : évite de faire sortir les processus de la mémoire physique aussi longtemps que possible.
-
swappiness=1
:
- Noyau version 3.5 et plus : swappiness minimum sans le désactiver entièrement.
-
swappiness=100
:
- Indique au noyau de faire sortir agressivement les processus de swap de la mémoire physique et de les déplacer dans le cache de swap.
Voir http://en.wikipedia.org/wiki/Swappiness .
Le paramètre par défaut dans Ubuntu est swappiness=60
. Réduire la valeur par défaut de swappiness améliorera probablement les performances globales pour une installation de bureau Ubuntu typique. Une valeur de swappiness=10
est recommandé, mais n'hésitez pas à expérimenter.
Ejemplo
J'ai commencé à utiliser swap à 91% :
Comme j'ai configuré mon système et mon vm pour utiliser la mémoire vive à 90% à 90% il n'y a pas eu d'échange.
Après cela, j'ai ouvert quelques applications comme Firefox et Shutter, et il a commencé à permuter parce que l'utilisation de la RAM est supérieure à la normale. 90% .
24 votes
Une doublure
sudo bash -c "echo 'vm.swappiness = 15' >> /etc/sysctl.conf"
16 votes
@redanimalwar vous avez aussi besoin d'exécuter
sudo sysctl -p
pour charger la nouvelle valeur de swappiness à partir du fichier sysctl.conf, sinon le changement s'applique seulement au prochain redémarrage.