
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. Habituellement, lors de l'exécution d'une machine virtuelle Debian, une partition d'échange n'est pas présente, la seule option est donc de créer un fichier d'échange.
Ce didacticiel décrit les étapes nécessaires pour ajouter un fichier d'échange sur les systèmes Debian 9.
Avant de commencer #
Avant de continuer avec ce tutoriel, vérifiez si votre installation Debian a déjà le swap activé en tapant :
sudo swapon --show
Si la sortie est vide, cela signifie que le système n'a pas d'espace d'échange.
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/sda2 partition 4G 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 créer un plus grand swap, remplacez 1G
avec la taille de l'espace d'échange dont vous avez besoin.
Les étapes ci-dessous montrent comment ajouter de l'espace d'échange sur Debian 9.
-
Commencez par créer un fichier qui servira au swap :
sudo fallocate -l 1G /swapfile
Si
fallocate
n'est pas installé ou vous obtenez un message d'erreur indiquant quefallocate failed: Operation not supported
puis utilisez la commande suivante pour créer le fichier d'échange :sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576
-
Seul l'utilisateur root doit pouvoir lire et écrire dans le fichier d'échange. Exécutez la commande ci-dessous pour définir les autorisations correctes :
sudo chmod 600 /swapfile
-
Utilisez le
mkswap
outil pour mettre en place une zone de swap Linux sur le fichier :sudo mkswap /swapfile
-
Activez le fichier d'échange en tapant :
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
-
Pour vérifier que le swap est actif, utilisez soit le
swapon
oufree
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 est 60. Vous pouvez vérifier la valeur de swappiness actuelle en tapant la commande suivante :
cat /proc/sys/vm/swappiness
60
Alors que la valeur d'échange de 60 convient à la plupart des systèmes Linux, 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 d'abord l'espace d'échange 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 actuel :
sudo rm /swapfile