Ci-dessous, les différences entre deux révisions de la page.
| Prochaine révision | Révision précédente | ||
| sysadmin:linux:swap [2020/08/09 12:33] – créée yoann | sysadmin:linux:swap [2026/03/01 09:24] (Version actuelle) – yoann | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | {{tag> | + | {{tag> |
| - | ====== 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' | + | * Mémoire virtuelle = RAM + SWAP |
| - | Pour afficher | + | Il est utilisé par le système lorsque l' |
| + | * Cela peut conduire au plantage des applications en cours d' | ||
| + | * 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' | ||
| + | |||
| + | Sur les versions récentes de GNU/Linux plusieurs formes de swap peuvent coexister: | ||
| + | * les partitions d' | ||
| + | * les fichiers d' | ||
| + | * Le zram (système de fichier compressé en RAM). | ||
| + | |||
| + | |||
| + | < | ||
| + | Si plusieurs distributions GNU/Linux coexistent, elles peuvent utiliser une même partition d' | ||
| + | </ | ||
| + | |||
| + | ===== Volumétrie et cas d' | ||
| + | |||
| + | : | ||
| + | |||
| + | |||
| + | ==== Systèmes virtualisés ==== | ||
| + | |||
| + | Pour les systèmes virtualisés, | ||
| + | |||
| + | |||
| + | ==== 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' | ||
| + | * Pour pouvoir utiliser l' | ||
| + | |||
| + | ==== Systèmes embarqués ==== | ||
| + | |||
| + | Dans des cas spécifiques comme Raspberry Pi : | ||
| + | * Le zram pour éviter d' | ||
| + | * 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' | ||
| + | </ | ||
| + | |||
| + | ^ 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' | ||
| + | |||
| + | Plusieurs espaces d' | ||
| + | |||
| + | <code bash> | ||
| + | swapon -s | ||
| + | </ | ||
| + | |||
| + | ===== 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. | ||
| + | </ | ||
| + | |||
| + | ==== Modifier le seuil d' | ||
| + | |||
| + | La valeur par défaut est souvent définie à 60. | ||
| + | |||
| + | : | ||
| + | |||
| + | Cela signifie que quand il y a moins de 60% d' | ||
| + | |||
| + | 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 | ||
| <code bash> | <code bash> | ||
| Ligne 14: | Ligne 90: | ||
| - | Plusieurs espaces d' | + | Modification |
| <code bash> | <code bash> | ||
| - | swapon -s | + | sudo sysctl vm.swappiness=1 |
| + | |||
| + | # Désactiver/ | ||
| + | sudo swapoff -av | ||
| + | sudo swapon -av | ||
| </ | </ | ||
| + | |||
| + | Pour rendre la modification permanente, utiliser un fichier de configuration sous **/ | ||
| + | |||
| + | <file conf 99-swappiness.conf> | ||
| + | vm.swappiness=1 | ||
| + | </ | ||
| + | |||
| + | ===== Création d'un fichier d' | ||
| + | |||
| + | La création/ | ||
| + | |||
| + | Les commandes ci dessous permettent de créer une fichier d' | ||
| + | |||
| + | <code bash> | ||
| + | # la commande fallocate réserve un bloc d' | ||
| + | sudo fallocate -l 4g /file.swap | ||
| + | |||
| + | # modifier les droits d’accès | ||
| + | sudo chmod 600 /file.swap | ||
| + | |||
| + | # déclarer le fichier comme espace d' | ||
| + | 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' | ||
| + | / | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Suppression d'un fichier d' | ||
| + | |||
| + | |||
| + | <code bash> | ||
| + | # désactiver l' | ||
| + | sudo swapoff /file.swap | ||
| + | |||
| + | # Suppression du fichier | ||
| + | sudo rm / | ||
| + | </ | ||
| + | |||
| + | Modifier **/ | ||
| + | |||
| + | < | ||
| + | # Désactivation du fichier d' | ||
| + | # / | ||
| + | </ | ||
| + | |||
| + | Modifier le seuil d' | ||
| + | |||
| + | <code bash> | ||
| + | echo vm.swappiness=1 | sudo tee / | ||
| + | </ | ||
| + | |||
| + | Désactiver / réactiver le swap pour prendre en compte les modifcations: | ||
| + | <code bash> | ||
| + | sudo swapoff -av | ||
| + | sudo swapon -av | ||
| + | </ | ||
| + | |||
| + | ===== Gestion du swap ===== | ||
| + | |||
| + | Le wiki [[sysadmin: | ||
| ===== Références ===== | ===== Références ===== | ||
| - | * https:// | + | * [[https:// |
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||