
Swap est un espace sur un disque qui est utilisé lorsque la quantité de mémoire RAM physique est pleine. Lorsqu'un système Linux manque de RAM, les pages inactives sont déplacées de la RAM vers l'espace d'échange.
L'espace d'échange peut prendre la forme d'une partition d'échange dédiée ou d'un fichier d'échange. Dans la plupart des cas, lors de l'exécution de CentOS sur une machine virtuelle, une partition d'échange n'est pas présente, la seule option consiste donc à créer un fichier d'échange.
Ce tutoriel explique comment ajouter un fichier d'échange sur les systèmes CentOS 7.
Avant de commencer #
Avant de poursuivre ce didacticiel, vérifiez si votre installation CentOS a déjà activé l'échange en tapant :
sudo swapon --show
Si la sortie est vide, cela signifie que votre système n'a pas d'espace d'échange activé.
Sinon, si vous obtenez quelque chose comme ci-dessous, vous avez déjà activé l'échange sur votre machine.
NAME TYPE SIZE USED PRIO
/dev/dm-1 partition 1.5G 0B -1
Bien que cela soit possible, il n'est pas courant d'avoir plusieurs espaces de swap sur une seule machine.
Création d'un fichier d'échange #
L'utilisateur sous lequel vous êtes connecté doit avoir les privilèges sudo pour pouvoir activer le swap. Dans ce guide, nous ajouterons 1G
de swap, si vous voulez ajouter plus de swap, remplacez 1G
avec la taille de l'espace d'échange dont vous avez besoin.
Suivez les étapes ci-dessous pour ajouter de l'espace d'échange sur un système CentOS 7.
-
Commencez par créer un fichier qui sera utilisé comme espace de swap :
sudo fallocate -l 1G /swapfile
Si le
fallocate
l'utilitaire n'est pas disponible sur votre système ou vous obtenez un message d'erreur indiquant quefallocate failed: Operation not supported
, utilisez la commande suivante pour créer le fichier d'échange :sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576
-
Assurez-vous que seul l'utilisateur root peut lire et écrire le fichier d'échange en définissant les autorisations appropriées :
sudo chmod 600 /swapfile
-
Ensuite, configurez une zone d'échange Linux sur le fichier :
sudo mkswap /swapfile
-
Exécutez la commande suivante pour activer le swap :
sudo swapon /swapfile
Rendez le changement permanent en ouvrant le
/etc/fstab
fichier :sudo nano /etc/fstab
et en collant la ligne suivante :
/etc/fstab/swapfile swap swap defaults 0 0
-
Vérifiez que le swap est actif en utilisant soit le
swapon
ou lefree
commandecomme indiqué ci-dessous :sudo swapon --show
NAME TYPE SIZE USED PRIO /swapfile file 1024M 507.4M -1
sudo free -h
total used free shared buff/cache available Mem: 488M 158M 83M 2.3M 246M 217M Swap: 1.0G 506M 517M
Ajustement de la valeur de swappiness #
Swappiness est une propriété du noyau Linux qui définit la fréquence à laquelle le système utilisera l'espace de swap. L'échange peut avoir une valeur comprise entre 0 et 100. Une valeur faible incitera le noyau à essayer d'éviter l'échange autant que possible, tandis qu'une valeur plus élevée incitera le noyau à utiliser l'espace d'échange de manière plus agressive.
La valeur de swappiness par défaut sur CentOS 7 est 30. Vous pouvez vérifier la valeur de swappiness actuelle en tapant la commande suivante :
cat /proc/sys/vm/swappiness
30
Bien que la valeur d'échange de 30 soit acceptable pour les ordinateurs de bureau et de développement, pour les serveurs de production, vous devrez peut-être définir une valeur inférieure.
Par exemple, pour définir la valeur de swappiness sur 10, tapez :
sudo sysctl vm.swappiness=10
Pour rendre ce paramètre persistant lors des redémarrages, ajoutez la ligne suivante au /etc/sysctl.conf
fichier :
vm.swappiness=10
La valeur de swappiness optimale dépend de la charge de travail de votre système et de la façon dont la mémoire est utilisée. Vous devez ajuster ce paramètre par petits incréments pour trouver une valeur optimale.
Supprimer un fichier d'échange #
Pour désactiver et supprimer le fichier d'échange, procédez comme suit :
-
Commencez par désactiver l'espace de swap en tapant :
sudo swapoff -v /swapfile
-
Ensuite, supprimez l'entrée du fichier d'échange
/swapfile swap swap defaults 0 0
depuis le/etc/fstab
fichier. -
Enfin, supprimez le fichier d'échange réel avec
rm
:sudo rm /swapfile