Ce que vous devez savoir sur la partition d'échange sous Linux

Partition d'échange Linux en vedette

Lorsque vous installez Linux, le processus d’installation ajoutera probablement une partition d’échange au disque dur avec les partitions pour Linux lui-même. Mais à quoi sert cette partition d’échange et est-elle vraiment nécessaire ?

À lire aussi : Ai-je besoin d’échange sous Ubuntu ? L’approche réaliste

Qu’est-ce que l’échange ?

Lorsqu’un système d’exploitation multitâche manque de mémoire physique, il est incapable de lancer de nouveaux processus ou d’allouer plus de mémoire aux processus existants. Pour résoudre ce problème, un bloc d’espace spécial sur le stockage local (souvent le disque dur) est réservé pour agir comme une zone de stockage temporaire pour les processus qui ne sont pas actuellement en cours d’exécution. Le système d’exploitation “échange” le processus inactif hors de la mémoire et sur le disque dur. Cela libère de la mémoire pour de nouveaux travaux. Lorsque le processus inactif devient actif à nouveau, il sera échangé de nouveau du stockage local vers la mémoire. Cette procédure est connue sous le nom d’échange.

L’espace d’échange est-il vraiment nécessaire ?

L’espace d’échange est-il techniquement nécessaire ? Non. Linux peut fonctionner sans cela et dans certaines situations, comme les solutions embarquées, Linux peut être exécuté sans échange. Si le système d’exploitation se retrouve dans une situation où il n’a pas assez de mémoire, il paniquera et s’arrêtera. S’il y a suffisamment de RAM physique, la machine fonctionnera sans aucun problème.

L’espace d’échange est-il pratiquement nécessaire ? Oui. Bien que l’échange ralentisse un ordinateur (car lire et écrire sur un disque dur est beaucoup plus lent que d’accéder à la RAM) et avoir autant de mémoire physique à bord soit la meilleure solution pour éviter l’échange, il y a des situations légitimes où l’échange est souhaitable. Par exemple, lors du démarrage du système, il peut y avoir des processus qui s’exécutent (et consomment donc de la mémoire système) mais qui ensuite dorment effectivement pendant de très longues périodes. Ou de la mémoire qui est allouée, écrite et qui ne sera plus jamais utilisée. Dans ces situations, l’algorithme d’échange commencera à migrer cette mémoire vers le disque dur et ainsi libérer de la mémoire système précieuse. Cela garantit en fait que la quantité maximale de RAM est disponible en tout temps et augmente donc les performances.

partition d'échange dans gparted

Sur les machines qui n’ont pas suffisamment de RAM physique pour que tout puisse résider en mémoire, l’utilisation de l’espace d’échange est essentielle !

Pour être complet, il convient de mentionner que Linux a également un sous-système appelé Out-Of-Memory Killer (OOM), qui, au lieu d’arrêter le noyau lorsqu’il manque de mémoire, commencera à tuer des processus pour libérer des ressources. Ses actions sont configurables.

Combien d’espace d’échange devrais-je allouer ?

Il n’y a pas de règle absolue et étant donné que l’espace disque dur est bon marché (dollar par Gigaoctet), il est préférable d’allouer trop d’espace plutôt que trop peu. En règle générale, vous devriez avoir deux ou trois fois la quantité d’espace d’échange par rapport à la mémoire physique.

Ajouter de l’échange sans étendre la partition d’échange

Il y a deux façons d’ajouter de l’espace d’échange à un système sans modifier la partition d’échange existante. Une façon est d’utiliser une partition d’échange sur un autre disque, l’autre est d’utiliser un fichier d’échange.

Pour utiliser un autre disque dur, créez une partition de type “Linux swap” (code 82) et exécutez ensuite la commande “ mkswap ” pour préparer l’espace d’échange :

mkswap /dev/sdb2

/dev/sdb2 est le nom de la partition que vous avez créée. Pour utiliser l’espace d’échange immédiatement, utilisez la commande “ swapon ” :

swapon /dev/sdb2

Utilisez “ swapon -s ” pour obtenir une liste des espaces d’échange actuellement utilisés. Pour ajouter définitivement l’espace d’échange au système, vous devez modifier le fichier /etc/fstab et ajouter une ligne similaire à celle-ci :

/dev/sdb2       none    swap    sw      00

Si votre système utilise des identifiants uniques pour nommer les disques, utilisez la commande blkid pour obtenir une liste des identifiants des appareils. La ligne pour monter l’espace d’échange dans /etc/fstab ressemblera alors à quelque chose comme ceci :

UUID=036da155-1ea1-4392-b8d4-700f65aa1ead  none  swap  sw  00

Pour utiliser un fichier pour l’échange, créez un fichier vide de grande taille (en utilisant dd) sur le système de fichiers que vous souhaitez utiliser pour l’échange. Par exemple, pour créer un fichier de 1 Go, tapez :

dd if=/dev/zero of=/store/swapfile bs=1024 count=1048576

/store/swapfile est le chemin vers le fichier d’échange sur le système de fichiers souhaité.

Comme pour la partition d’échange supplémentaire, le fichier doit maintenant être préparé avec mkswap puis utilisé avec swapon. Il doit également être ajouté au fichier /etc/fstab. La procédure est exactement la même que ci-dessus, mais vous devez utiliser /store/swapfile plutôt que /dev/sdb2 comme paramètre d’espace d’échange.

Swappiness

Le noyau Linux peut être ajusté pour définir à quelle vitesse il doit essayer d’échanger les processus de la mémoire. Cette tendance est contrôlée par une variable du noyau appelée swappiness. Une swappiness de 0 signifie que le noyau évitera d’échanger autant que possible, tandis que 100 signifie que le noyau sera agressif dans son utilisation de l’espace d’échange. Le paramètre par défaut pour de nombreuses distributions Linux est de 60. Il est possible de changer le nombre dynamiquement en utilisant cette commande :

sudo sysctl vm.swappiness=10

Pour définir un valeure de façon permanente, vous devez modifier (ou ajouter, si cela n’existe pas) la variable vm.swappiness dans le fichier /etc/sysctl.conf.

Faites-nous savoir si vous avez des questions sur l’échange dans Linux.

Cet article a été publié pour la première fois en décembre 2013 et a été mis à jour en août 2020.

Crédit image : échange