{{tag>sysadmin linux swap todo}}
====== 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/**
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 [[sysadmin:linux: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 =====
* https://doc.ubuntu-fr.org/swap