Outils pour utilisateurs

Outils du site


sysadmin:linux:swap

swap

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:

  • les partitions d'échange;
  • les fichiers d'échange.

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.

Volumétrie d'un espace d'échange

Ne créer des espaces d'échange que sur les disques mécaniques. Les SSD ayant un nombre limité d'écritures ne sont pas adaptés pour cet usage.
RAM (Go) Taille du swap
RAM >= 6 swap = RAM
1 < RAM < 4 swap = 1,5 x la RAM
RAM < 1 swap = 2 x RAM

Lister les espaces d'échanges

Plusieurs espaces d'échange peuvent être activés sur un même système. Pour les lister:

swapon -s

Paramétrages du swap

Modifier le seuil d'utilisation du swap

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/

99-swappiness.conf
vm.swappiness=1

Création d'un fichier d'échange

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

Suppression d'un fichier d'échange

# 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

Gestion du swap

Le wiki effacer-cache-memoire-swap détaille les commandes permettant de supprimer les données présentes dans la mémoire d'échange.

Références

sysadmin/linux/swap.txt · Dernière modification : 2021/02/01 21:51 de 127.0.0.1