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. En règle générale, lors de l'exécution de CentOS sur une machine virtuelle, une partition d'échange n'est pas présente, donc la seule option est de créer un fichier d'échange.
Cet article couvre les étapes pour ajouter un fichier d'échange sur les systèmes CentOS 8.
Création et activation d'un fichier d'échange #
Effectuez les étapes suivantes en tant que root ou utilisateur avec des privilèges sudo pour ajouter de l'espace d'échange sur un système CentOS 8.
-
Commencez par créer un fichier qui servira d'espace de swap :
sudo fallocate -l 1G /swapfile
Dans cet exemple, nous créons un fichier d'échange d'une taille de 1G. Si vous avez besoin de plus d'échange, remplacez
1G
avec la taille désirée.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 ledd
commande pour créer le fichier d'échange :sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576
-
Définissez les autorisations de fichier afin que seul l'utilisateur root puisse lire et écrire le fichier d'échange :
sudo chmod 600 /swapfile
-
Ensuite, configurez une zone d'échange Linux sur le fichier :
sudo mkswap /swapfile
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes) no label, UUID=0abdb8ba-57d6-4435-8fd8-5db9fc705045
-
Activez le swap en exécutant la commande suivante :
sudo swapon /swapfile
-
Vérifiez que le swap est actif en utilisant soit le
swapon
ou lefree
commande, comme 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
-
Rendez le changement permanent en ajoutant une entrée d'échange dans le
/etc/fstab
fichier :sudo nano /etc/fstab
Collez la ligne suivante :
/etc/fstab/swapfile swap swap defaults 0 0
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 dans la mesure du 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 8 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 :
-
Désactivez l'espace d'échange en tapant :
sudo swapoff -v /swapfile
-
Supprimez l'entrée d'échange
/swapfile swap swap defaults 0 0
depuis le/etc/fstab
fichier. -
Supprimez le fichier d'échange réel avec
rm
:sudo rm /swapfile