SWAP sous Linux

Guide de création et de configuration de l'espace swap sous Linux.

SWAP (espace d'échange) est un mécanisme de mémoire virtuelle sous Linux qui déplace les données inactives de la RAM vers le disque (HDD ou SSD) afin de libérer de la mémoire physique pour les tâches actives. Il joue le rôle de tampon d'urgence en cas de manque de mémoire, mais l'accès au disque est des dizaines de milliers de fois plus lent que la RAM — une utilisation intensive du swap ralentit donc sensiblement le système.

Sous Linux, la RAM est divisée en pages. Le swapping est le processus qui consiste à copier les pages les moins utilisées vers une zone disque dédiée appelée espace d'échange (fichier ou partition dédiée). La RAM et le swap forment ensemble la mémoire virtuelle totale disponible pour le système.

À quoi sert le swap

Le swap remplit deux fonctions principales :

  • Lorsque le système a besoin de plus de mémoire que ce qui est disponible, le noyau déplace les pages les moins utilisées vers le swap, libérant ainsi de la RAM pour les processus actifs.
  • De nombreuses pages chargées par les applications au démarrage sont rarement utilisées ensuite. Le système peut les déplacer vers le swap afin de garder la RAM disponible pour des tâches plus importantes.

Inconvénients du swap

Le principal inconvénient est la vitesse. Les opérations en RAM s'effectuent en nanosecondes, tandis que les opérations sur disque prennent des millisecondes — soit des dizaines de milliers de fois plus lent. Une utilisation intensive du swap entraîne des ralentissements perceptibles.

Remarque

Lorsque les applications font massivement appel au swap, les performances chutent de manière significative. Dans ce cas, envisagez d'augmenter la RAM. Une option consiste à migrer votre projet vers un VPS ou un serveur dédié plus puissant, avec une mise à l'échelle des ressources flexible.

Signes courants de manque de mémoire (notamment pour les bases de données) :

  • Des erreurs fréquentes du type « échec de connexion à la base de données » (par exemple, crash de MySQL)
  • Des entrées de log indiquant InnoDB: Fatal error: cannot allocate memory for the buffer pool
  • Des réponses lentes du serveur malgré une faible utilisation du CPU

Même sur SSD, les opérations de swap passent par le sous-système disque, ce qui augmente la latence.

Si votre système dépend fortement du swap, c'est le signe qu'il faut soit augmenter la RAM, soit optimiser l'application. Envisagez de passer à un VPS plus puissant ou de migrer vers un serveur dédié.

Vérifier le swap

Exécutez :

swapon -s

Exemple de sortie :

Filename                Type        Size    Used    Priority
/swapfile              file        40956   40956   -1

Ou pour un aperçu rapide :

free -m

Exemple de sortie :

              total        used        free      shared  buff/cache   available
Mem:            488         160           7          40         320         259
Swap:            39          39           0

Si Swap affiche 0 ou est absent — vous devez le créer.

Nos produits et services

Hébergement webFonctionne sur des disques NVMe ultra-rapides. Convient aux sites de toute complexité.
Commande
VPSInfrastructure cloud flexible avec accès root complet.
Commande
Serveurs dédiésServeurs physiques pour une performance maximale.
Commande

Créer un fichier swap (méthode recommandée)

  1. Créer un fichier swap (exemple : 2 Go) :
sudo fallocate -l 2G /swapfile

ou

sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
  1. Définir des permissions sécurisées (seul root peut lire/écrire) :
sudo chmod 600 /swapfile
  1. Le formater en swap :
sudo mkswap /swapfile
  1. Activer le fichier swap :
sudo swapon /swapfile
  1. Le rendre permanent — ajouter à /etc/fstab :
sudo nano /etc/fstab

Ajoutez cette ligne à la fin :

/swapfile none swap sw 0 0

Enregistrez (Ctrl+O → Entrée → Ctrl+X).

  1. Vérifier :
free -h

Facultatif : régler la swappiness

swappiness contrôle l'intensité avec laquelle le système utilise le swap (0–100, valeur par défaut 60).

Vérifier la valeur actuelle :

cat /proc/sys/vm/swappiness

Définir une valeur plus basse (recommandé pour les serveurs : 10–20) :

sudo sysctl vm.swappiness=10

Pour la rendre permanente, ajoutez à /etc/sysctl.conf :

vm.swappiness=10

Appliquer :

sudo sysctl -p

Aide

Une question ou besoin d'un coup de main ? Écrivez-nous via le système de tickets — nous sommes toujours là pour vous aider !

Besoin d’aide?Nos ingénieurs vous aideront gratuitement pour n’importe quelle question en quelques minutesNous contacter