Il y a quelques jours, j’ai écrit un article pour trouver les erreurs système sur Linux et il m’a bien servi. C’est notamment ce qui m’amène à faire celui ci après avoir identifié le problème grâce au syslog de Linux qui enregistre tout ce qui se passe mal sur le système d’exploitation. Une fois le problème identifié ce sur serveur il était temps de passer à l’action et c’est ce que nous allons faire dans ce tutoriel pour créer un fichier de swap.
J’espère que ce tutoriel vous sera une nouvelle fois fort utile et surtout n’hésitez pas à aller voir mes autres tutoriels sur Linux, NGINX ou encore PHP pour maîtriser au maximum Ubuntu / Debian. Si comme moi, vous prenez du plaisir à administrer vous-même vos serveurs, ce n’est pas si compliqué, mais il y a un peu d’apprentissage quand on est débutant. C’est comme tout, il faut un peu pratiquer.
C’est quoi le fichier d’échange d’échange SWAP dans Linux ?
Le fichier swap, ou fichier d’échange, est un espace sur le disque dur utilisé par le système d’exploitation pour étendre la mémoire vive (RAM) de l’ordinateur. Quand la RAM est pleine et que le système a encore besoin de mémoire pour exécuter des programmes, il déplace certaines données inactives de la RAM vers le fichier swap sur le disque dur pour libérer de l’espace dans la RAM. Cela permet au système d’exploitation de continuer à fonctionner et aux programmes de s’exécuter même si la mémoire vive est pleine.
Il ne faut pas oublier que lire et écrire des données sur le disque dur est beaucoup plus lent que d’accéder à la mémoire vive. Par conséquent, bien que le swap soit utile pour augmenter la quantité de mémoire disponible pour les applications, son utilisation peut également ralentir le système si elle est excessive. Même si le stockage sur SSD est maintenant largement disponible chez de nombreux hébergeurs et fournisseurs de serveurs VPS / dédiés, ça reste moins rapide que tout faire dans la RAM.
Le fichier swap est particulièrement important dans les systèmes avec une quantité limitée de RAM ou lorsque de nombreuses applications sont exécutées simultanément sur un petit serveur. Cela permet d’absorber les petits pics de charge sans avoir de problèmes.
Vérifier si un fichier swap existe déjà sur Linux Ubuntu / Debian
Dans un premier temps, pour ne pas faire de bêtises, vous pouvez vérifier si un fichier d’échange SWAP existe déjà ou pas. Pour le faire, c’est assez simple à l’aide de plusieurs lignes de commande. La plus simple est de faire la commande :
swapon --show
Cette commande affiche les espaces de swap actifs. Si aucun espace de swap n’est listé, cela signifie que vous n’avez pas d’espace de swap configuré. Vous pouvez aussi vérifier avec la commande suivante :
cat /proc/swaps
S’il n’y a aucun fichier d’échange swap sur votre machine Linux, cela devrait renvoyer quelque chose qui est vide. Vous pouvez même faire la commande :
free -h
Cette commande affiche la quantité de mémoire physique libre et utilisée, ainsi que les informations sur l’espace de swap. La sortie est formatée de manière à être facile à lire pour un humain. Elle devrait vous donner quelque chose qui donne quelque chose qui ressemble à ça :
Encore une fois ca nous renvoie rien donc on peut considérer qu’il n’y a pas de swap de configuré. Pour terminer cette partie, on peut aussi facilement le voir avec l’outil de monitoring htop :
On voit bien que le swap est à 0K / 0K. Si l’espace de swap est configuré, via les différents moyens de vérifications, vous avez vu les détails, comme sa taille. Sinon aucun espace de swap n’apparaît, cela signifie que votre système n’utilise pas de swap. Comme je l’ai dit au début et dans mon précédent article, cela peut être un problème si votre mémoire vive (RAM) est souvent saturée, car le swap agit comme une mémoire supplémentaire en utilisant l’espace disque pour stocker des parties de la mémoire vive qui ne sont pas activement utilisées.
Maintenant que l’on sait qu’il n’y a aucun fichier swap de configuré sur notre machine Linux on peut donc passer à la création de ce fichier d’échange très facilement.
Créer et configurer un fichier d’échange swap sous Linux Ubuntu / Debian
Partons du principe que nous voulons créer et configurer un espace swap de 2GB. Mon serveur web possède seulement 1GB de mémoire vive donc avec ce nouveau réglage, je devrais être assez tranquille. Dans un premier temps, nous allons créer ce fichier de swap de 2GB à l’aide de la commande suivante :
sudo fallocate -l 2G /swapfile
Avant de l’utiliser comme espace de swap, vous devez vous assurer que le fichier a les bonnes permissions pour empêcher l’accès non autorisé. Pour ce faire on va changer les droits de lecture et d’écriture sur ce fichier qui sont une composante importante de Linux via cette commande :
sudo chmod 600 /swapfile
On va maintenant utiliser la commande mkswap pour formater le fichier en tant qu’espace de swap :
sudo mkswap /swapfile
Après avoir formaté le fichier, on peut l’activer avec la commande swapon :
sudo swapon /swapfile
Pour vérifier que l’espace de swap est bien activé, utilisez la commande swapon –show ou free -h.
Rendre le swap permanent sur la machine
Ce serait dommage de perdre cette configuration lors d’un reboot du serveur. Pour que ça n’arrive pas, on va rendre cette configuration de ce fichier swap persistant sur la machine Linux. Pour que votre espace de swap soit activé automatiquement au démarrage, vous devez ajouter une entrée dans le fichier /etc/fstab. Ouvrez ce fichier avec votre éditeur de texte préféré en mode superutilisateur.
Une fois ce fichier /etc/fstab ouvert, ajoutez dedans la ligne suivante à la fin du fichier :
/swapfile swap swap defaults 0 0
Une fois le fichier enregistré, vous pouvez redémarrer votre machine pour vérifier que le fichier d’échange swap reste bien persistant. Si vous relancez swapon –show ou cat /proc/swaps vous devriez maintenant voir cet espace d’échange swap apparaître.
Ces différentes étapes devraient vous permettre de configurer votre espace de swap sur votre serveur Ubuntu. Gardez à l’esprit que l’utilisation excessive du swap peut indiquer que votre serveur devrait bénéficier de plus de RAM physique.