Le noyau Linux fournit un paramètre ajustable qui contrôle la fréquence d'utilisation du fichier d'échange, appelé swappiness.
Un paramètre swappiness de zéro signifie que le disque sera évité sauf en cas d'absolue nécessité (mémoire insuffisante), tandis qu'un paramètre swappiness de 100 signifie que les programmes seront permutés presque instantanément sur le disque.
Le système Ubuntu est livré avec un 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 mémoire vive. Vous pouvez vérifier la valeur de swappiness 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 donc ramener ce chiffre à 10 ou 15. Le fichier d'échange ne sera alors utilisé que lorsque mon utilisation de RAM est d'environ 80 ou 90 %. Pour modifier la valeur de swappiness du système, ouvrez /etc/sysctl.conf as root
. Ensuite, modifiez ou ajoutez cette ligne au fichier:
vm.swappiness = 10
Redémarrez pour que le changement prenne effet
Vous pouvez également modifier la valeur pendant que votre système est toujours en cours d'exécution
sysctl vm.swappiness=10
vous pouvez également effacer votre échange en exécutant swapoff -a
puis en swapon -a
tant que root au lieu de redémarrer pour obtenir le même effet.
Pour calculer votre formule d'échange
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
le total est donc 3950/100 = 39,5 * 10 = 395
donc ce que cela signifie est que lorsque 10% 395 Mo de RAM sont partis, il commence à utiliser swapiness