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

Ce trebuie să știți despre partiția Swap pe Linux
⌛ Reading Time: 4 minutes

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

Qu’est-ce que l’échange ?

Lorsqu’un système d’exploitation multitâche manque de mémoire physique, il est incapable de démarrer 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 servir de zone de stockage temporaire pour les processus qui ne sont pas en cours d’exécution. Le système d’exploitation « échange » le processus inactif de la mémoire vers le disque dur. Cela libère de la mémoire pour de nouveaux travaux. Lorsque le processus inactif redeviendra actif, il sera transféré du stockage local vers la mémoire. Cette procédure est connue sous le nom de permutation.

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

L’espace d’échange est-il techniquement nécessaire ? Non. Linux peut fonctionner sans lui et dans certaines situations, comme les solutions embarquées, Linux peut être exécuté sans swap. 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 (la lecture et l’écriture sur un disque dur étant beaucoup plus lentes que l’accès à la RAM) et que le fait d’avoir autant de mémoire physique à bord soit la meilleure solution pour éviter l’échange, il existe des situations légitimes où l’échange est souhaitable. Par exemple, pendant le 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 se mettent ensuite en veille pendant de très longues périodes. Ou de la mémoire allouée, écrite puis jamais ré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 à tout moment et augmente ainsi les performances.

Sur les machines qui n’ont pas assez de RAM physique pour que tout réside en mémoire alors l’utilisation de l’espace de swap est indispensable !

Pour être complet, il convient de mentionner que Linux possède également un sous-système appelé Out-Of-Memory Killer (OOM), qui plutôt que 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 de swap dois-je allouer ?

Il n’y a pas de règle absolue et comme l’espace disque est bon marché (dollar par gigaoctet), il vaut mieux en allouer trop que trop peu. En règle générale, vous devriez avoir deux ou trois fois plus d’espace d’échange que la mémoire physique.

Ajouter un swap sans étendre la partition de swap

Il existe deux manières d’ajouter de l’espace d’échange à un système sans modifier la partition d’échange existante. L’une consiste à utiliser une partition d’échange sur un autre lecteur, l’autre consiste à utiliser un fichier d’échange.

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

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

Utilisation “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 devrez modifier le /etc/fstab fichier et ajoutez une ligne semblable à celle-ci :

Si votre système utilise des identifiants uniques pour nommer les disques, utilisez le blkid commande pour obtenir une liste des identifiants des périphériques. La ligne pour monter l’espace de swap dans /etc/fstab ressemblerait alors à quelque chose comme ceci :

Pour utiliser un fichier pour l’échange, créez un gros fichier vierge (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, saisissez :

/store/swapfile est le chemin d’accès au 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 faut aussi l’ajouter à la /etc/fstab fichier. 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 modifié pour définir avec quelle agressivité il doit essayer d’échanger des processus hors de la mémoire. Cette tendance est contrôlée par une variable de noyau appelée swappiness. UNE swappiness de 0 signifie que le noyau évitera autant que possible de permuter, tandis que 100 signifie que le noyau sera agressif dans la façon dont il utilise l’espace de permutation. Le paramètre par défaut pour de nombreuses distributions Linux est 60. Il est possible de modifier le nombre de manière dynamique à l’aide de cette commande :

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

Faites-nous savoir si vous avez des questions sur le swap sous 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 : échanger

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.