Comment créer un fichier d'échange dans Linux

Les échanges dans Linux sont des zones spécifiques sur le disque réservées comme mémoire virtuelle. Ils sont principalement utilisés pour améliorer les performances du système lors de tâches gourmandes en ressources, telles que le montage vidéo. Lorsque le système commence à avoir des difficultés, le noyau déplacera les processus inactifs vers l’échange pour faire de la place pour les processus actifs dans la mémoire de travail.
En général, lors de l’installation de Linux, une partition d’échange sera créée pour vous par défaut et allouera de l’espace sur le disque dur à cet effet. Cela a un certain nombre d’inconvénients, par exemple si vous avez un disque plus petit sur un ordinateur plus ancien, ou si vous utilisez un SSD sur un appareil plus récent.
Le problème avec les disques SSD est qu’ils ont une capacité d’écriture limitée dans les cellules. Même avec un équilibrage d’usure, la mémoire flash a une durée de vie finie, et de multiples écritures peuvent rendre les cellules individuelles inutilisables.
Lisez aussi : Comment gérer l’utilisation de l’échange dans Linux
Quelle est l’alternative ?
Si l’utilisation d’une partition d’échange dédiée n’est pas pratique, ou si vous souhaitez simplement essayer une alternative sans dépenser d’argent pour de la RAM supplémentaire, vous pouvez utiliser un fichier d’échange à la place.
Un fichier d’échange fonctionne de manière similaire à une partition, bien qu’il ait l’avantage supplémentaire de permettre aux utilisateurs de contrôler la taille sans le problème de redimensionner un volume. De plus, la manière dont l’échange sera utilisé, ou le facteur de “swappiness”, peut également être contrôlée en modifiant la valeur d’échange.
Création de l’échange
Je vais vous donner un exemple de base pour créer un fichier d’échange de 1 Go.
Tout d’abord, créez le fichier en entrant la commande suivante dans votre terminal :
sudo fallocate -l 1G /mnt/1GB.swapSi vous n’avez pas fallocate installé, exécutez alors la commande plus traditionnelle :
sudo dd if=/dev/zero of=/mnt/1GB.swap bs=1024 count=1048576Maintenant, formatez le fichier d’échange :
sudo mkswap /mnt/1GB.swapAjoutez l’échange au système en tant que fichier d’échange :
sudo swapon /mnt/1GB.swapOuvrez le fichier “/etc/fstab” dans votre éditeur de texte préféré, et ajoutez ceci à la fin pour rendre le changement permanent :
/mnt/1GB.swap none swap sw 0 0La ligne ci-dessus se décompose comme suit :
- “/mnt/1GB.swap” – c’est le périphérique et le nom du fichier
- “swap” – cela définit le point de montage
- “swap sw” – cela montre que le fichier d’échange sera activé par swapon – s (voir ci-dessous)
- “0 0” – ce sont les options utilisées par le programme de vidage et la commande fsck respectivement
À ce stade, si vous souhaitez modifier la valeur de “swappiness”, vous pouvez le faire en éditant “/etc/sysctl.conf” de la même manière que vous avez modifié le fstab ci-dessus. La valeur de swappiness est généralement de 60 ; plus le nombre est élevé (jusqu’à 100), plus l’échange sera agressif.
vm.swappiness=10La quantité d’échange nécessaire dépend de la manière dont le système fonctionne et de la manière dont la mémoire est utilisée. Les utilisateurs doivent expérimenter pour trouver ce qui leur convient le mieux. Si la valeur ci-dessus est réglée à zéro, alors le fichier d’échange ne sera utilisé que lorsque le système aura épuisé la mémoire. Les valeurs au-dessus de zéro permettront au système de remplacer les processus inactifs et de libérer de la mémoire pour la mise en cache sur disque ; cela peut potentiellement améliorer les performances globales du système.
Lisez aussi : Ce que vous devez savoir sur la partition d’échange sous Linux
Enfin, vérifiez si l’échange est actif :
sudo swapon -sIl vous suffit de redémarrer et vous aurez un fichier d’échange opérationnel au lieu d’une partition d’échange. Quelle option est la meilleure pour vous ? Utilisez-vous une partition ou un fichier dédié ? Faites-nous savoir dans les commentaires et dites-nous également si vous avez d’autres méthodes pour générer un fichier.