Le swap est une zone du disque dur faisant partie de la mémoire virtuelle. Il est utilisé en complément de la mémoire RAM. Sur les version récente de GNU/Linux deux formes de swap peuvent coexister:
Quand c'est possible privilégier l'utilisation de fichier d'échange à la place de partition.
Si plusieurs distributions GNU/Linux coexistent, elles peuvent utiliser une même partition d'échange.
RAM (Go) | Taille du swap |
---|---|
RAM >= 6 | swap = RAM |
1 < RAM < 4 | swap = 1,5 x la RAM |
RAM < 1 | swap = 2 x RAM |
Plusieurs espaces d'échange peuvent être activés sur un même système. Pour les lister:
swapon -s
Par défaut le système est configuré pour permettre l'usage du swap dès 40% d'occupation de la RAM.
Pour afficher ce paramètre:
cat /proc/sys/vm/swappiness
Modification
sudo sysctl vm.swappiness=1 # Désactiver/réactiver le swap pour prendre en compte la modif sudo swapoff -av sudo swapon -av
Pour rendre la modification permanente, utiliser un fichier de configuration sous /etc/sysctl.d/
vm.swappiness=1
La création/suppression de fichier d'échange se fait au sein d' un système de fichier. Il n'y a donc pas d'impact sur la table de partitionnement. Cela apporte plus de souplesse et présente moins de risques.
Les commandes ci dessous permettent de créer une fichier d'échange:
# la commande fallocate réserve un bloc d'espace disque pour le swap sudo fallocate -l 4g /file.swap # modifier les droits d’accès sudo chmod 600 /file.swap # déclarer le fichier comme espace d'échange sudo mkswap /file.swap # activer sudo swapon /file.swap
Pour que le fichier soit utilisé à chaque démarrage, modifier le fichier /etc/fstab
# Fichier d'échange (swap)
/file.swap none swap sw 0 0
# désactiver l'espace de swap déclaré sur le fichier sudo swapoff /file.swap # Suppression du fichier sudo rm /file.swap
Modifier /etc/fstab pour supprimer ou commenter l'entrée relative au fichier de swap.
# Désactivation du fichier d'échange (swap)
# /file.swap none swap sw 0 0
Modifier le seuil d'utilisation de la mémoire swap (swappiness)
echo vm.swappiness=1 | sudo tee /etc/sysctl.d/99-swappiness.conf
Désactiver / réactiver le swap pour prendre en compte les modifcations:
sudo swapoff -av sudo swapon -av
Le wiki effacer-cache-memoire-swap détaille les commandes permettant de supprimer les données présentes dans la mémoire d'échange.