Swap (Français)

État de la traduction:
Cet article est la version francophone de
Swap
. Date de la dernière traduction: 2025-05-18. Vous pouvez aider à synchroniser la traduction s'il y a eu des
changements
dans la version anglaise.
Related articles
fstab (Français)
Hibernation
Zswap
zram
Swap on video ram
ZFS#Swap volume
dm-crypt/Swap encryption
Cette page fournit une introduction à l'
espace d'échange («swap»)
sur GNU/Linux. Elle couvre la création et l'activation des partitions swap et des fichiers swap.
Extrait de
All about Linux swap space
:
Linux divise sa mémoire physique («RAM») en morceaux de mémoire appelés pages. «Swap»-er est le processus par lequel une page de mémoire est copiée dans l'espace préconfiguré sur le disque dur, appelé espace d'échange ou «swap», pour libérer cette page de mémoire. Les tailles combinées de la mémoire physique et de l'espace d'échange constituent la quantité de mémoire virtuelle disponible.
La prise en charge de l'espace d'échange est assurée par le noyau Linux et les utilitaires de l'espace utilisateur du paquet
util-linux
.
Espace de pagination
L'espace de pagination peut prendre la forme d'une partition de disque ou d'un fichier. Les utilisateurs peuvent créer un espace de pagination pendant l'installation ou à tout moment par la suite. L'espace d'échange peut être utilisé à deux fins, pour étendre la mémoire virtuelle au-delà de la mémoire physique installée (RAM), et aussi pour prendre en charge la
suspension sur disque
.
L'intérêt d'étendre la mémoire virtuelle avec le swap dépend de la quantité de mémoire physique installée. Si la quantité de mémoire physique est inférieure à la quantité de mémoire requise pour exécuter tous les programmes souhaités, alors il peut être bénéfique d'activer l'échange. Cela permet d'éviter le situations d'
insuffisance de mémoire
, où le mécanisme «OOM killer» du noyau Linux tentera automatiquement de libérer de la mémoire en tuant les processus. Pour augmenter la quantité de mémoire virtuelle à la quantité requise, ajoutez la différence nécessaire (ou plus) comme espace d'échange.
Le plus gros inconvénient de l'espace d'échange lorsqu'elle est utilisée est sa baisse de performance, consultez la section
#Performance
. Par conséquent, l'activation de l'espace de pagination est une question de préférence personnelle : certains préfèrent que les programmes soient tués plutôt que d'utiliser du «swap» et d'autres préfèrent utiliser la «swap» et un système plus lent lorsque la mémoire physique est épuisée.
Note
Il n'y a aucune différence de performance entre l'utilisation d'une partition d'échange et d'un fichier d'échange contigu.
Pour vérifier l'état du swap, utilisez :
$ swapon --show
Ou pour afficher la mémoire physique ainsi que l'utilisation de l'espace de pagination :
$ free -h
Partition de swap
Une
partition de swap
peut être créée avec la plupart des
outils de partitionnement
GNU/Linux. Les partitions de swap sont identifiées par le type de partition GUID
0657FD6D-A4AB-43C4-84E5-
sur les systèmes GPT (type
8200
pour
gdisk
, type
swap
pour
fdisk
) et par l’identifiant de type
82
sur les systèmes MBR.
Pour configurer une partition comme «Linux swap», on utilise la commande
mkswap(8)
. Par exemple :
# mkswap /dev/sd
xy
Attention
Toutes les données de la partition spécifiée seront perdues.
Pour activer le périphérique pour la pagination :
# swapon /dev/sd
xy
Voir
swapon(8)
pour la syntaxe des options.
Activation au démarrage
Pour activer la partition de swap au démarrage, vous pouvez soit :
utiliser
systemd (Français)#Montage automatique d'une partition GPT
ajouter une entrée à
/etc/fstab
. Exemple :
UUID=
périphérique_UUID
none swap defaults 0 0
Où
périphérique_UUID
est l'
UUID
de l'espace swap désigné.
Voir
fstab (Français)
for the file syntax, and
systemd (Français)#systemd.mount - montage
.
Désactivation de la swap
Pour désactiver un espace d'échange spécifique :
# swapoff /dev/sd
xy
Vous pouvez également utiliser le paramètre
-a
pour désactiver tout l'espace d'échange.
Comme l'espace d'échange est géré par systemd, il sera réactivé au prochain démarrage du système. Pour désactiver définitivement l'activation automatique la swap détecté, exécutez
systemctl --type swap
pour trouver l'unité
.swap
responsable et
masquez
-la.
Fichier d'échange
En tant qu'alternative à la création d'une partition entière, un fichier d'échange offre la possibilité de varier sa taille à la volée, et est plus facilement supprimé. Cela peut être particulièrement souhaitable si l'espace disque est limité (par exemple, un SSD de taille modeste).
File system
Supports swap files
Bcachefs
Non
Btrfs
Oui
F2FS
Oui
ext4
Oui
JFS
Oui
NILFS2
Non
NTFS3
Oui
ReiserFS
Oui
XFS
Oui
ZFS
Non
Création de fichiers d'échange
Note
Pour
Btrfs
, suivez la procédure décrite dans dans
Btrfs#Swap file
au lieu des étapes ci-dessous.
Utilisez  pour créer un fichier swap de la taille de votre choix. Par exemple, pour créer un fichier swap de 4 Go :
Utilisez
mkswap(8)
pour créer un fichier d’échange de la taille de votre choix (voir
Partitioning#Swap
pour les recommendations).
Par exemple, pour créer un fichier d’échange de 4 Gio :
# mkswap -U clear --size 4G --file /swapfile
Activez le fichier d'échange :
# swapon /swapfile
Enfin, modifiez la configuration fstab pour ajouter une entrée pour le fichier d'échange :
/etc/fstab
/swapfile none swap defaults 0 0
Pour plus d'informations, consultez
Fstab (Français)#Utilisation
.
Note
Le fichier d'échange doit être spécifié par son emplacement sur le système de fichiers, et non par son UUID ou son LABEL.
Supprimer le fichier swap
Pour supprimer un fichier swap, il faut d'abord le désactiver, puis le supprimer :
# swapoff /swapfile
# rm -f /swapfile
Enfin, supprimez l'entrée correspondante de
/etc/fstab
.
Chiffrement de la swap
Consultez
Dm-crypt/Swap encryption
.
Performance
Les opérations de swap sont généralement beaucoup plus lentes que l'accès direct aux données en RAM. Cependant, désactiver complètement le swap dans le but d'améliorer les performances peut parfois entraîner une dégradation de celles-ci. S'il n'y a pas suffisamment de mémoire physique disponible pour tout contenir, l'absence de swap laisse moins de mémoire disponible pour les caches du système de fichiers, ce qui provoque une utilisation du disque plus fréquente et plus lourde.
Les valeurs de swap peuvent être ajustées pour améliorer les performances :
Swappiness
Lorsque l’utilisation de la mémoire atteint un certain seuil, le noyau commence à analyser la mémoire active pour déterminer ce qu’il peut libérer. Les données de fichiers peuvent être écrites sur le système de fichiers (si elles ont été modifiées), déchargées, puis rechargées ultérieurement ; d’autres types de données doivent être écrites dans la swap avant de pouvoir être déchargées.
Le paramètre
sysctl
swappiness
représente la préférence du noyau pour l’écriture dans la swap plutôt que dans les fichiers. Il peut avoir une valeur comprise entre 0 et 200 (maximum 100 si le noyau Linux est antérieur à 5.8) ; la valeur par défaut est 60. Une valeur faible pousse le noyau à privilégier la libération des fichiers ouverts, tandis qu’une valeur élevée l’incite à utiliser l’espace de swap. Une valeur de 100 signifie que le coût des entrées/sorties (I/O) est considéré comme équivalent.
Note
Il existe une idée reçue courante selon laquelle le paramètre swappiness affecterait le seuil de mémoire ou empêcherait l’utilisation de la swap. En réalité, il influence uniquement la préférence du noyau pour libérer les pages de fichiers plutôt que d’utiliser la swap.
Consultez
cet article
pour une explication plus détaillée, ou le
code source du noyau
pour voir où ce paramètre est utilisé.
Pour vérifier la valeur actuelle de swapiness :
$ sysctl vm.swappiness
Alternativement, le fichier
/proc/sys/vm/swappiness
peut être lu afin d'obtenir la valeur entière brute.
Pour définir temporairement la valeur de swappiness :
# sysctl -w vm.swappiness=35
Pour définir la valeur de permutation de manière permanente, créez un fichier de configuration
sysctl.d(5)
. Par exemple :
/etc/sysctl.d/99-swappiness.conf
vm.swappiness=35
Pour que le
chargeur d'amorçage
définisse la «swappiness» lors du chargement du noyau, ajoutez un
paramètre du noyau
, par exemple
sysctl.vm.swappiness=35
.
Pour tester et en savoir plus sur les raisons pour lesquelles cela peut fonctionner, jetez un œil à
cet article
.
Pour tester cela et en savoir plus sur pourquoi cela peut fonctionner, consultez
cet article
. Pour un contre-argument plus récent, voyez
cet autre article
.
Pression du cache VFS
Un autre paramètre
sysctl
qui affecte les performances de swap est
vm.vfs_cache_pressure
, qui contrôle la tendance du noyau à récupérer la mémoire qui est utilisée pour la mise en cache des caches VFS, par rapport au pagecache et au swap. L'augmentation de cette valeur augmente la vitesse à laquelle les caches VFS sont récupérés
[1]
. Pour plus d'informations, consultez la
documentation du noyau Linux
.
Priorité
Si vous avez plus d'un fichier d'échange ou d'une partition d'échange, vous devriez envisager d'attribuer une valeur de priorité (0 à 32767) pour chaque zone d'échange. Le système utilisera les zones d'échange de priorité supérieure avant d'utiliser les zones d'échange de priorité inférieure. Par exemple, si vous avez un disque plus rapide et un disque plus lent, attribuez une priorité plus élevée à la zone d'échange située sur le périphérique le plus rapide. Les priorités peuvent être attribuées dans
fstab
via le paramètre
pri
:
UUID=f9fe0b69-a280-415d-a03a-a32752370dee none swap defaults,pri=100 0 0
UUID=d7eb6062-01c8-4367-ac1d-3bf1167de8bb none swap defaults,pri=10  0 0
Ou via le paramètre
--priority
de
swapon
:
# swapon --priority 100 /dev/sda1
Si deux zones ou plus ont la même priorité, et qu'il s'agit de la plus haute priorité disponible, les pages sont allouées entre elles en alternance stricte.
Utilisation de zswap ou zram
Zswap
est une fonctionnalité du noyau Linux qui fournit un cache en écriture compressé pour les pages échangées,
ZRAM
crée un bloc d'échange virtuel compressé en mémoire comme alternative à un fichier ou une partition d'échange sur le disque. Les deux approches augmentent les performances et diminue les opérations d'entrée/sortie sur disque.
Striping
Il n'est pas nécessaire d'utiliser
RAID
pour améliorer les performance du swap. Le noyau lui-même peut répartir le swap sur plusieurs périphériques, si vous leur donnez simplement la même priorité dans le fichier
/etc/fstab
. Reportez-vous à
The Software-RAID HOWTO
pour plus de détails.