Outils pour utilisateurs

Outils du site


sysadmin:linux:swap

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
sysadmin:linux:swap [2020/08/09 12:33] – créée yoannsysadmin:linux:swap [2026/03/01 09:24] (Version actuelle) yoann
Ligne 1: Ligne 1:
-{{tag>sysadmin linux swap todo}}+{{tag>sysadmin linux swap}}
  
  
-====== swap ======+====== Gestion du swap ======
  
 +Le swap est un espace mémoire complémentaire à la RAM formant la mémoire virtuelle disponible pour le système :
  
-Par défaut le système peut commencer à utiliser la mémoire swap lorsque la RAM descend sous 60% de mémoire libre (donc dès 40% d'occupation de la RAM). +  * Mémoire virtuelle = RAM + SWAP
  
-Pour afficher ce paramètre:+Il est utilisé par le système lorsque l'espace commence à manquer en RAM, c'est pourquoi il est important de ne pas le désactiver totalement : 
 +  * Cela peut conduire au plantage des applications en cours d'exécution ; 
 +  * Un swap modéré et également bénéfique au système : il permet de libérer des espaces peu utilisés en RAM  au profit des mémoires tampons (caches disque et buffers I/O). 
 + 
 +On cherche cependant toujours à limiter son usage car pour les types de swap se trouvant hors de la RAM, les temps d'accès sont beaucoup plus longs, les performances globales sont dégradées. 
 + 
 +Sur les versions récentes de GNU/Linux plusieurs formes de swap peuvent coexister: 
 +  * les partitions d'échange ; 
 +  * les fichiers d'échange ; 
 +  * Le zram (système de fichier compressé en RAM). 
 + 
 + 
 +<note> 
 +Si plusieurs distributions GNU/Linux coexistent, elles peuvent utiliser une même partition d'échange. 
 +</note> 
 + 
 +===== Volumétrie et cas d'usage ===== 
 + 
 +:TODO_DOCUPDATE: 
 + 
 + 
 +==== Systèmes virtualisés ==== 
 + 
 +Pour les systèmes virtualisés, privilégier un fichier disque dédié pour la swap. On peut ainsi facilement le redimensionner ou de l'exclure des snapshots. 
 + 
 + 
 +==== Poste de travail ==== 
 + 
 +Pour une station de travail : 
 +  * Le zram est une bonne alternative dans la plupart des cas : il sera potentiellement plus sollicité qu'un serveur ; 
 +  * Un fichier ou une partition fait aussi l'affaire tout en étant moins performant que zram si le SWAP est utilisé ; 
 +  * Pour pouvoir utiliser l'hibernation : un fichier ou partition SWAP de la taille RAM au moins ; 
 + 
 +==== Systèmes embarqués ==== 
 + 
 +Dans des cas spécifiques comme Raspberry Pi : 
 +  * Le zram pour éviter d'écrire sur la carte SD ou un disque connecté en USB ; 
 +  * Ne pas désactiver le SWAP : peut causer des crashs de processus (applications ou processus système) 
 + 
 +<note warning> 
 +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 : on privilégie en général le zram. 
 +</note> 
 + 
 +^ 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: 
 + 
 +<code bash> 
 +swapon -s 
 +</code> 
 + 
 +===== Paramétrages du swap ===== 
 + 
 +<note warning> 
 +La valeur du paramètre **swapiness** n'a rien à voir avec la quantité de RAM utilisée avant de commencer le processus de swap. 
 +</note> 
 + 
 +==== Modifier le seuil d'utilisation du swap ==== 
 + 
 +La valeur par défaut est souvent définie à 60. 
 + 
 +:TODO_DOCUPDATE: A valider/reformuler 
 + 
 +Cela signifie que quand il y a moins de 60% d'espace libre en RAM, le système peut commencer à swapper. 
 + 
 +On pourra diminuer cette valeur pour utiliser au mieux la RAM et optimiser les performances : il faut cependant garder en tête que le swap reste nécessaire au bon fonctionnement du système et qu'il n'est pas recommandé en général de le désactiver totalement. 
 + 
 + 
 +Pour afficher la valeur du paramètre :
  
 <code bash> <code bash>
Ligne 14: Ligne 90:
  
  
-Plusieurs espaces d'échange peuvent être activés sur un meme système. Pour les lister:+Modification
  
 <code bash> <code bash>
-swapon -s+sudo sysctl vm.swappiness=1 
 + 
 +# Désactiver/réactiver le swap pour prendre en compte la modif 
 +sudo swapoff -av 
 +sudo swapon -av
 </code> </code>
 +
 +Pour rendre la modification permanente, utiliser un fichier de configuration sous **/etc/sysctl.d/**
 +
 +<file conf 99-swappiness.conf>
 +vm.swappiness=1
 +</file>
 +
 +===== 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:
 +
 +<code bash>
 +# 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
 +</code>
 +
 +Pour que le fichier soit utilisé à chaque démarrage, modifier le fichier /etc/fstab
 +
 +<file>
 +# Fichier d'échange (swap)
 +/file.swap    none    swap    sw 0 0
 +</file>
 +
 +
 +===== Suppression d'un fichier d'échange =====
 +
 +
 +<code bash>
 +# désactiver l'espace de swap déclaré sur le fichier
 +sudo swapoff /file.swap
 +
 +# Suppression du fichier
 +sudo rm /file.swap 
 +</code>
 +
 +Modifier **/etc/fstab**  pour supprimer ou commenter l'entrée relative au fichier de swap.
 +
 +<file>
 +# Désactivation du fichier d'échange (swap)
 +# /file.swap    none    swap    sw 0 0
 +</file>
 +
 +Modifier le seuil d'utilisation de la mémoire swap (swappiness)
 +
 +<code bash>
 +echo vm.swappiness=1 | sudo tee /etc/sysctl.d/99-swappiness.conf
 +</code>
 +
 +Désactiver / réactiver le swap pour prendre en compte les modifcations:
 +<code bash>
 +sudo swapoff -av
 +sudo swapon -av
 +</code>
 +
 +===== 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 ===== ===== Références =====
  
-  * https://doc.ubuntu-fr.org/swap+  * [[https://doc.ubuntu-fr.org/swap|La mémoire SWAP (ubuntu-fr.org)]] 
 +  * [[https://www.linuxtricks.fr/wiki/swap-informations-bonnes-pratiques-configuration|SWAP : information, bonnes pratiques et configuration (linuxtricks.fr)]] 
 +  * [[https://unix.stackexchange.com/questions/137509/allocating-swap-space-with-kvm|Allocation du SWAP pour les VMs KVM (unix.stackexchange.com) (en)]] 
 +  * [[https://www.linuxtricks.fr/wiki/zram-compresser-la-ram-au-lieu-de-swapper-sur-linux|Utiliser le zram (linuxtricks.fr)]] 
 +  * [[https://www.howtogeek.com/449691/what-is-swapiness-on-linux-and-how-to-change-it/|A propos du paramètre swapiness du noyau Linux (howtogeek.com) (en)]] 
sysadmin/linux/swap.1596976383.txt.gz · Dernière modification : 2021/02/01 21:51 (modification externe)