Swap

De ArchwikiFR


Sur From All about Linux swap space (en):

Linux divise la RAM (mémoire vive) physique en blocs de mémoire appelés pages. Le swapping est le procédé par lequel une page de mémoire est copiée vers un espace prédéfini sur le disque dur, appelé swap (espace d'échange), permettant de libérer cette page mémoire. Les tailles combinées de la mémoire physique et de l'espace d'échange correspondent à la quantité de mémoire virtuelle disponible.

Espace d'échange

L'espace d'échange, aussi connu sous le nom de mémoire virtuelle, peut être présent sous forme de partition ou de fichier, et peut être créé ou supprimé à n'importe quel moment. L'espace d'échange est recommandé pour les machines ayant moins de 1 Go de mémoire vive (RAM), mais dépend surtout des préférences personnelles du propriétaire de l'ordinateur. La seule contrainte vient lors de l'activation de l'hibernation, nécessitant un fichier d'échange de taille supérieur ou égale à la taille de mémoire vive physiquement installée.

Pour voir l'état de l'espace d'échange, utilisez

swapon -s

Ou:

free -m
Note: L'utilisation d'un fichier d'échange ou d'une partition d'échange est équivalente en terme de performance.

Partition d'échange

Une partition d'échange peut être créée avec la plupart des outils de partitionnement GNU/Linux (comme fdisk ou cfdisk). Les Partitions d'échanges sont désignées sous le type d'id 82.

Pour préparer la partition, il faut utiliser la commande mkswap (équivalent d'un formatage avec mkfs). Par exemple:

mkswap /dev/sda2
Attention: Toutes les données de la partition seront effacées.

Pour utiliser la partition d'échange:

swapon /dev/sda2

Pour utiliser cette partition à chaque redémarrage, ajoutez cette ligne au fichier /etc/fstab:

/dev/sda2 none swap defaults 0 0
Note: Si vous utilisez une SSD supportant le TRIM, discard est une option de montage valide pour le fichier d'échange (à placer à côté de defaults en séparant par une virgule). Le paramètre -d ou --discard avec swapon a le même effet. Pour plus d'informations sur les options de montages, utilisez man swapon.

Fichier d'échange

Comme alternative à l'utilisation d'une partition entière, un fichier d'échange à la capacité de changer sa taille à la volée est plus simple à supprimer. Ce qui est préférable si l'espace disque est faible.

Attention: Le format de fichiers BTRFS ne supporte pas encore les fichiers d'échange.

Création d'un fichier d'échange

En root utilisez fallocate pour créer un fichier de la taille de votre choix (M = Megaoctets, G = Gigaoctets) (dd peut aussi être utilisé, mais peut prendre plus de temps).

Par exemple, pour créer un fichier de 512 Mo:

fallocate -l 512M /swapfile

ou

dd if=/dev/zero of=/swapfile bs=1M count=512

Changez les permissions (un fichier d'échange lisible est une grande faille de sécurité locale):

chmod 600 /swapfile

Après avoir créé le fichier, formatez-le avec:

mkswap /swapfile

Activez le fichier d'échange:

swapon /swapfile

Éditez /etc/fstab et ajoutez une entrée pour le fichier d'échange:

/swapfile none swap defaults 0 0

Suppression d'un fichier d'échange

Pour supprimer un fichier d'échange, il faut d'abord le désactiver.

En root:

swapoff -a

Puis, supprimez le fichier de manière classique:

rm -f /swapfile