Mise à jour : Debian 9.2
La mémoire d'échange (swap), aussi appelée mémoire cache est un espace mémoire avec deux fonctions :
fournir de la mémoire supplémentaire en supplément de la mémoire vive
stocker le contenu de la mémoire vive lorsque l'ordinateur rentre en hibernation
La mémoire d'échange peut être constituée d'un ou plusieurs espaces disques, ces espaces pouvant être des partitions ou des fichiers dédiés. Dans ce qui suit, on s'intéresse au cas d'une mémoire d'échange constituée d'un fichier situé dans la partition racine.
Création fichier swap
# fallocate -l 1G /swapfile
mkswp /swapfile
Ajout dans fstab des paramètres de montage de fstab
# nano /etc/fstab
/swapfile none swap defaults 0 0
Activer la swap
# swapon /swapfile
swapon: /swapfile : droits 0644 non sûrs, 0600 conseillées.
# chmod 0600 /swapfile
$ cat /proc/swaps
Filename Type Size Used Priority
/swapfile file 2097148 7724 -1
$ free -h
total used free shared buff/cache available
Mem: 7,7G 817M 5,0G 107M 1,9G 6,5G
Swap: 2,0G 7,5M 2,0G
L'utilisation de la swap en complément de la mémoire vive est contrôlée par le paramètre swappiness, compris entre 0 et 100. Lorsque le paramètre est à 0, la swap n'est pas utilisée, lorsque le paramètres est à 100, son utilisation est maximum. Par défaut, ce paramètre est à 60.
Pour modifier la valeur, par exemple la passer à 1, pour limiter au maximum l'utilisation de la swap, sans la désactiver :
# sysctl -w vm.swappiness=1
vm.swappiness = 1
Vérification :
# sysctl vm.swappiness
vm.swappines = 1
Pour rendre permanente la modification :
# echo vm.swappiness=1 >/etc/sysctl.d/local.conf
Pour supprimer un fichier de swap :
# swapoff /swapfile
# rm /swapfile
Systemd ne prend pas en compte les fichiers d'échange, une solution consiste à utiliser uswsusp voir Arrêt - Redémarrage - Suspension - Hibernation