Agence web » Actualités du digital » Comment créer et activer un fichier d’échange sur la ligne de commande Linux –

Comment créer et activer un fichier d’échange sur la ligne de commande Linux –

Shutterstock / Mbok Menawa

En apprenant ce qu’est et fait un fichier sawp, vous découvrirez comment en créer et en activer un sur votre instance Linux. Armé de ces connaissances, vous serez en mesure de vous assurer que votre système ne sera plus à court de mémoire.

Qu’est-ce qu’un fichier d’échange?

Commençons par une question rhétorique: que se passe-t-il lorsque votre ordinateur manque de mémoire?

Sous Linux, un processus de surveillance spécial – le processus de surveillance / tueur de MOO – surveillera si un système manque de mémoire, à moins que le tueur de MOO n’ait été désactivé ou configuré différemment.

Lorsque cela se produit, ce processus mettra fin à l’un des processus en cours d’exécution sur le système afin de libérer de la mémoire. Cela peut entraîner des résultats douloureux tels que la corruption des données ou des services indisponibles. L’acronyme MOO signifie «Out of Memory»

Une solution consiste à acheter de la mémoire supplémentaire ou à réduire le nombre de programmes ou de services s’exécutant simultanément sur l’ordinateur ou le serveur. Mais que diriez-vous si nous pouvions utiliser notre espace disque (généralement bon marché) comme «mémoire supplémentaire»?

C’est exactement ce qu’est et fait un fichier d’échange: un fichier spécial créé sur votre périphérique de stockage qui fait alors partie de la mémoire principale. Pas directement, et il y a une surcharge de traitement, mais indirectement et avec un impact considérable sur la vitesse de traitement.

Avantages et inconvénients du fichier d’échange

La mémoire principale est généralement ultra rapide par rapport aux disques plus lents. Même les SSD (disques SSD) sont presque toujours plus lents que les puces de mémoire principale haute vitesse. Pour les disques durs (disques durs mécaniques, rotatifs, traditionnels), la différence de vitesse est encore beaucoup plus grande.

C’est donc un avantage indéniable, dans la plupart des configurations, d’utiliser un disque plus lent (SDD et surtout HDD) comme source de mémoire. Le délai d’écriture des données dans les deux sens entre la mémoire principale et le disque (c’est-à-dire en utilisant le disque comme mémoire) est appelé «  swapping  » (échange de mémoire avec de l’espace disque)

Cela dit, c’est toujours une bonne idée d’avoir un fichier d’échange de côtés raisonnables sur votre système. La raison est simple; disons que nous n’avons besoin que d’un gigaoctet supplémentaire de mémoire pendant quelques minutes pour garantir que notre système n’invoque pas le tueur OOM et met fin à certains processus. Un fichier d’échange est préférable dans ce cas car même si un processus manque de RAM utilisable, il ne plantera pas, il fonctionnera plus lentement pendant un peu jusqu’à ce qu’il termine sa tâche.

Cependant, si le système commence à échanger fortement, il deviendra presque certainement plus lent (lire: beaucoup plus lent). Ce sera très perceptible.

En résumé, il existe un équilibre fin et délicat, qui est quelque peu arbitraire et dépend de beaucoup de choses différentes dans une situation donnée; le nombre de processus en cours d’exécution sur un système et leur taille de travail de la mémoire, la mémoire totale utilisée, la mémoire disponible dans le fichier d’échange, la configuration de fichier d’échange spécifique du système, etc.

Quelques considérations sur les fichiers d’échange

Sur de nombreuses configurations Linux dans le monde aujourd’hui, il existe une partition d’échange attribuée sur l’un des disques du système. Il s’agit d’un domaine spécial, généralement (mais pas exclusivement; il peut être ajouté plus tard) réservé lors de l’installation du système d’exploitation Linux. Il a la même fonctionnalité cible est la même que celle d’un fichier d’échange. Pour vérifier si votre système a une forme de swap actuellement activée, exécutez simplement ce qui suit dans votre terminal:

sudo apt -y install htop
htop

Et recherchez la sortie suivante:

sortie htop de la mémoire principale et de l'espace de swap

Remarquez comment sur ce système, il y a une mémoire principale de 62,7 Go et un espace de swap de 11,0 Go. Vous pouvez également voir comment seule une petite quantité (23,5 millions) est actuellement utilisée. Si vous pensez que votre système change, vérifiez à quoi ressemblent ces deux compteurs.

S’ils sont tous les deux presque pleins, il est fort probable que votre système permute fortement et fonctionnera beaucoup plus lentement. La raison est qu’il y a maintenant une lourde charge liée aux E / S (c’est-à-dire liée au disque), échangeant constamment la mémoire principale avec la mémoire sur disque.

En règle générale, certaines personnes préfèrent utiliser un certain pourcentage de mémoire système comme taille à allouer à un fichier d’échange. Personnellement, je prends une autre voie, et c’est de considérer combien de mémoire supplémentaire je pourrais avoir besoin. Si la taille est considérable, par exemple, un serveur de 8 Go finira probablement par utiliser 14 Go pour un cas d’utilisation spécifique, il est alors beaucoup plus logique d’augmenter la mémoire du serveur de 8 Go à 16 Go.

Cependant, si le système dispose de 8 Go et que l’utilisation habituelle est de 6 à 7 Go avec un pic occasionnel si je démarre trop de programmes à la fois, je peux envisager un espace de swap supplémentaire de 8 Go, ou un peu plus. L’espace disque est généralement assez bon marché, donc le surdimensionner un peu, à condition que vous ayez de l’espace, ne fera pas de mal.

Comment activer un fichier d’échange

Prêt à ajouter un fichier d’échange? Cela peut être fait à la volée. Cette méthode fonctionnera aussi bien sur les systèmes basés sur Debian (Ubuntu, Mint,…) que sur RedHat (RedHat, Centos,…).

Nous allons créer un fichier d’échange de 1 gigaoctet, ou 1000 mégaoctets ou 1024000 blocs (calculé comme le nombre de mégaoctets x 1024) dans cet exemple.

Nous l’appellerons swapfile123, situé dans le répertoire racine (/), et nous lui avons donné ce nom pour éviter d’écraser tout fichier que vous avez déjà en place. Si vous êtes sûr de ne pas avoir de fichier nommé / swapfile, vous pouvez l’utiliser à la place si vous le souhaitez, en prenant soin de changer correctement le nom de fichier à tous les endroits.

Veuillez vous assurer de saisir toutes les commandes, et en particulier le dd , avec précaution afin de ne pas écraser les données de votre système. Nous utilisons sudo su pour entrer en mode superutilisateur (su) via sudo. Cela revient à exécuter chaque commande en utilisant sudo, bien qu’il soit plus facile de ne pas taper chaque préfixe de commande sudo en utilisant cette méthode.

sudo su
if [ -r /swapfile123 ]; then echo "Stop please! /swapfile123 already exists!"; fi
dd if=/dev/zero of=/swapfile123 bs=1024 count=1024000
chmod 0600 /swapfile123
mkswap /swapfile123
swapon /swapfile123

Vous devriez voir une sortie similaire à ce qui suit:

Activation des fichiers d'échange sous Linux

Si oui, félicitations! Vous venez d’activer votre premier fichier d’échange, dynamiquement (à la volée), sur la ligne de commande Linux!

Nous avons d’abord utilisé le dd outil pour créer notre espace d’échange, en utilisant le /dev/zero périphérique (un périphérique virtuel qui sort juste des zéros lorsqu’il est appelé, par dd ou tout autre outil). Ensuite, nous définissons des privilèges de sécurité appropriés.

Nous avons ensuite indiqué au système d’exploitation que le fichier devait être transformé en fichier d’échange en utilisant le mkswap commander. Enfin, nous avons activé l’espace d’échange, dynamiquement sur la ligne de commande, sans avoir à redémarrer notre système.

Nous pouvons également vérifier facilement si notre espace d’échange est devenu plus grand en utilisant free -m:

free -m montrant comment l'espace de swap diminue lorsque nous le désactivons

Génial, vous pouvez voir comment nous sommes passés de 12215M à 11215M (-1000M comme prévu) lorsque nous avons désactivé le fichier d’échange nouvellement créé. Vous pouvez également voir comment nous avons utilisé swapoff pour désactiver dynamiquement le swap sur la ligne de commande.

Il est bon de savoir que si jamais nous voyons notre système entrer dans des problèmes de mémoire et que nous pouvons taper assez rapidement, nous pouvons lui donner de la mémoire supplémentaire à la volée 🙂 En pratique, il est préférable de le faire avant que les problèmes ne surviennent.

Nous n’avons plus qu’un seul petit problème à régler. Si nous devions redémarrer à ce moment, alors que notre fichier d’échange resterait sur le disque, le système ne l’utiliserait pas. Aucune modification de paramètre n’a été effectuée jusqu’à présent, ce qui garantira que l’espace d’échange est rechargé au redémarrage du système.

Activation de notre nouveau swap au moment du démarrage

Pour activer le nouvel espace de swap au démarrage, ajoutez simplement la ligne suivante (comme ligne) à / etc / fstab:

/swapfile123  swap  swap  defaults  0  0

Vous pouvez le faire pendant que vous êtes encore sudo su mode (comme indiqué par le #) en démarrant l’éditeur nano pour / etc / fstab:

nano /etc/fstab
cat /etc/fstab

Ensuite, ajoutez simplement la ligne ci-dessus au fichier à la fin et enregistrez (CTRL + X> Y> entrée). Ne modifiez ni ne supprimez aucune autre ligne car cela pourrait empêcher votre système de démarrer correctement. Assurez-vous également de vérifier le contenu de votre fichier / etc / fstab avant de redémarrer en exécutant le cat /etc/fstab au dessus.

Vous pouvez maintenant redémarrer votre système et confirmer que votre espace d’échange supplémentaire est toujours disponible en utilisant free -m encore.

Suppression de notre nouvel espace de swap

Si vous voulez supprimer le nouvel espace d’échange, ou peut-être en créer un un peu plus grand, vous pouvez le faire en éditant à nouveau le fichier / etc / fstab et en supprimant la ligne qui charge le fichier d’échange en entier. Ne modifiez ni ne supprimez aucune autre ligne car cela pourrait empêcher votre système de démarrer correctement! Vous pouvez ensuite exécuter:

sudo swapoff /swapfile123
rm /swapfile123

Terminé! Pas besoin de redémarrer non plus, car cette modification a été effectuée de manière dynamique. Au prochain redémarrage, le fichier d’échange ne sera plus activé car nous avons supprimé la ligne correspondante du fichier / etc / fstab.

Profitez de Swapfiles!

★★★★★