GNU/Linux >> Tutoriels Linux >  >> Linux

Comment créer et utiliser un fichier d'échange sous Linux

Ce didacticiel aborde le concept de fichier d'échange sous Linux, pourquoi il est utilisé et ses avantages par rapport à la partition d'échange traditionnelle. Vous apprendrez à créer un fichier d'échange ou à le redimensionner.

Qu'est-ce qu'un fichier d'échange sous Linux ?

Un fichier d'échange permet à Linux de simuler l'espace disque en tant que RAM. Lorsque votre système commence à manquer de RAM, il utilise l'espace d'échange et échange une partie du contenu de la RAM sur l'espace disque. Cela libère de la RAM pour servir des processus plus importants. Lorsque la RAM est à nouveau libre, elle échange les données du disque. Je vous recommande de lire cet article pour en savoir plus sur le swap sous Linux.

Traditionnellement, l'espace d'échange est utilisé comme une partition distincte sur le disque. Lorsque vous installez Linux, vous créez une partition séparée uniquement pour le swap. Mais cette tendance a changé ces dernières années.

Avec le fichier d'échange, vous n'avez plus besoin d'une partition séparée. Vous créez un fichier sous root et dites à votre système de l'utiliser comme espace d'échange.

Avec une partition de swap dédiée, le redimensionnement de l'espace de swap est un cauchemar et une tâche impossible dans de nombreux cas. Mais avec les fichiers d'échange, vous pouvez les redimensionner à votre guise.

Les versions récentes d'Ubuntu et de certaines autres distributions Linux ont commencé à utiliser le fichier d'échange par défaut. Même si vous ne créez pas de partition d'échange, Ubuntu crée lui-même un fichier d'échange d'environ 1 Go.

Voyons un peu plus sur les fichiers d'échange.

Vérifiez l'espace d'échange sous Linux

Avant de commencer à ajouter de l'espace d'échange, ce serait une bonne idée de vérifier si vous avez déjà de l'espace d'échange disponible dans votre système.

Vous pouvez le vérifier avec la commande gratuite sous Linux. Dans mon cas, mon Dell XPS dispose de 14 Go d'espace d'échange.

free -h
              total        used        free      shared  buff/cache   available
Mem:           7.5G        4.1G        267M        971M        3.1G        2.2G
Swap:           14G          0B         14G

La commande free vous donne la taille de l'espace d'échange mais elle ne vous dit pas s'il s'agit d'une vraie partition d'échange ou d'un fichier d'échange. La commande swapon est meilleure à cet égard.

swapon --show
NAME           TYPE       SIZE USED PRIO
/dev/nvme0n1p4 partition 14.9G   0B   -2

Comme vous pouvez le voir, j'ai 14,9 Go d'espace de swap et c'est sur une partition séparée. S'il s'agissait d'un fichier d'échange, le type aurait été fichier au lieu de partition.

swapon --show
NAME      TYPE SIZE USED PRIO
/swapfile file   2G   0B   -2

Si vous n'avez pas d'espace d'échange sur votre système, il devrait afficher quelque chose comme ceci :

free -h
              total        used        free      shared  buff/cache   available
Mem:           7.5G        4.1G        267M        971M        3.1G        2.2G
Swap:           0B          0B         0B

La commande swapon n'affichera aucune sortie.

Créer un fichier d'échange sous Linux

Si votre système ne dispose pas d'espace d'échange ou si vous pensez que l'espace d'échange n'est pas suffisant, vous pouvez créer un fichier d'échange sous Linux. Vous pouvez également créer plusieurs fichiers d'échange.

Voyons comment créer un fichier d'échange sous Linux. J'utilise Ubuntu 18.04 dans ce tutoriel, mais cela devrait également fonctionner sur d'autres distributions Linux.

Étape 1 :Créer un nouveau fichier d'échange

Tout d'abord, créez un fichier avec la taille d'espace d'échange que vous souhaitez. Disons que je veux ajouter 1 Go d'espace de swap à mon système. Utilisez la commande fallocate pour créer un fichier de taille 1 Go.

sudo fallocate -l 1G /swapfile

Il est recommandé de n'autoriser que root à lire et à écrire dans le fichier d'échange. Vous verrez même un avertissement comme "autorisations non sécurisées 0644, 0600 suggérées" lorsque vous essayez d'utiliser ce fichier pour la zone d'échange.

sudo chmod 600 /swapfile

Notez que le nom du fichier d'échange peut être n'importe quoi. Si vous avez besoin de plusieurs espaces de swap, vous pouvez lui donner n'importe quel nom approprié comme swap_file_1, swap_file_2 etc. C'est juste un fichier avec une taille prédéfinie.

Étape 2 :Marquez le nouveau fichier comme espace d'échange

Vous devez indiquer au système Linux que ce fichier sera utilisé comme espace d'échange. Vous pouvez le faire avec l'outil mkswap.

sudo mkswap /swapfile

Vous devriez voir une sortie comme celle-ci :

Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=7e1faacb-ea93-4c49-a53d-fb40f3ce016a

Étape 3 :Activez le fichier d'échange

Maintenant, votre système sait que le fichier swapfile peut être utilisé comme espace de swap. Mais ce n'est pas encore fait. Vous devez activer le fichier d'échange pour que votre système puisse commencer à utiliser ce fichier comme échange.

sudo swapon /swapfile

Maintenant, si vous vérifiez l'espace d'échange, vous devriez voir que votre système Linux le reconnaît et l'utilise comme zone d'échange :

swapon --show
NAME       TYPE   SIZE USED PRIO
/swapfile  file 1024M   0B   -2

Étape 4 :Rendre les modifications permanentes

Tout ce que vous avez fait jusqu'à présent est temporaire. Redémarrez votre système et toutes les modifications disparaîtront.

Vous pouvez rendre les modifications permanentes en ajoutant le fichier d'échange nouvellement créé au fichier /etc/fstab.

C'est toujours une bonne idée de faire une sauvegarde avant d'apporter des modifications au fichier /etc/fstab.

sudo cp /etc/fstab /etc/fstab.back

Vous pouvez maintenant ajouter la ligne suivante à la fin du fichier /etc/fstab :

/swapfile none swap sw 0 0

Vous pouvez le faire manuellement à l'aide d'un éditeur de texte en ligne de commande ou simplement utiliser la commande suivante :

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Maintenant, vous avez tout en place. Votre fichier d'échange sera utilisé même après le redémarrage de votre système Linux.

Ajuster la permutation

Les paramètres de swappiness déterminent la fréquence d'utilisation de l'espace de swap. La valeur de permutation est comprise entre 0 et 100. Une valeur plus élevée signifie que l'espace de permutation sera utilisé plus fréquemment.

La permutation par défaut sur le bureau Ubuntu est de 60 alors que sur le serveur, elle est de 1. Vous pouvez vérifier la permutation avec la commande suivante :

cat /proc/sys/vm/swappiness

Pourquoi les serveurs doivent utiliser une faible swappiness ? Parce que le swap est plus lent que la RAM et pour de meilleures performances, la RAM doit être utilisée autant que possible. Sur les serveurs, le facteur de performance est crucial et donc la swappinness est aussi faible que possible.

Vous pouvez modifier la permutation à la volée à l'aide de la commande systemd suivante :

sudo sysctl vm.swappiness=25

Ce changement n'est cependant que temporaire. Si vous souhaitez le rendre permanent, vous pouvez modifier le fichier /etc/sysctl.conf et ajouter la valeur swappiness à la fin du fichier :

vm.swappiness=25

Redimensionner l'espace d'échange sous Linux

Il existe plusieurs façons de redimensionner l'espace d'échange sous Linux. Mais avant de voir cela, vous devriez apprendre quelques choses à ce sujet.

Lorsque vous demandez à votre système d'arrêter d'utiliser un fichier d'échange pour la zone d'échange, il transfère toutes les données (pages pour être précis) vers la RAM. Vous devriez donc disposer de suffisamment de RAM libre avant de procéder à l'échange.

C'est pourquoi une bonne pratique consiste à créer et à activer un autre fichier d'échange temporaire. De cette façon, lorsque vous échangez la zone d'échange d'origine, votre système utilisera le fichier d'échange temporaire. Vous pouvez maintenant redimensionner l'espace d'échange d'origine. Vous pouvez supprimer manuellement le fichier d'échange temporaire ou le laisser tel quel et il sera automatiquement supprimé au prochain démarrage.

Si vous disposez de suffisamment de RAM libre ou si vous avez créé un espace d'échange temporaire, échangez votre fichier d'origine.

sudo swapoff /swapfile

Vous pouvez maintenant utiliser la commande fallocate pour modifier la taille du fichier. Supposons que vous le changiez en taille de 2 Go :

sudo fallocate -l 2G /swapfile

Marquez à nouveau le fichier comme espace d'échange :

sudo mkswap /swapfile

Et réactivez le swap :

sudo swapon /swapfile

Vous pouvez également choisir d'avoir plusieurs fichiers d'échange en même temps.

Suppression du fichier d'échange sous Linux

Vous pouvez avoir vos raisons de ne pas utiliser le fichier d'échange sous Linux. Si vous souhaitez le supprimer, le processus est similaire à ce que vous venez de voir en redimensionnant le swap.

Tout d'abord, assurez-vous que vous disposez de suffisamment de RAM libre. Échangez maintenant le fichier :

sudo swapoff /swapfile

L'étape suivante consiste à supprimer l'entrée correspondante du fichier /etc/fstab.

Et à la fin, vous pouvez supprimer le fichier pour libérer de l'espace :

sudo rm /swapfile

Échangez-vous ?

Je pense que vous avez maintenant une bonne compréhension du concept de fichier d'échange sous Linux. Vous pouvez désormais facilement créer un fichier d'échange ou le redimensionner selon vos besoins.

Si vous avez quelque chose à ajouter sur ce sujet ou si vous avez des doutes, veuillez laisser un commentaire ci-dessous.



Linux
  1. Comment créer un alias et utiliser la commande Alias ​​sous Linux

  2. Comment créer ou augmenter l'espace d'échange sous Linux

  3. Comment installer et utiliser Flatpak sous Linux

  4. Comment créer un swap sous Linux

  5. Créer un fichier d'échange Linux

Fichier hôte Linux :comment le modifier et l'utiliser ?

Comment installer et utiliser PuTTY sous Linux

Comment installer et utiliser phpMyAdmin sous Linux

Comment installer et utiliser la commande fd sous Linux

Comment désactiver Swap sous Linux

Comment utiliser gzip sous Linux ?