DevOps

Le Swap sur Linux : Pourquoi et Comment le Configurer sur Votre Serveur

Comprendre le swap sur Linux et pourquoi il est indispensable sur un serveur. Guide pratique pour configurer le swap, optimiser le swappiness et protéger votre VPS contre les crashes mémoire.

15 Feb 2026 10 min de lecture 25 vues
25

Lectures

10

Minutes

0

Partages

Introduction

Vous avez un VPS avec 1 ou 2 Go de RAM et votre serveur plante sans prévenir ? Votre base de données MySQL se fait tuer par le système en pleine nuit ? Le coupable est souvent le même : un manque de mémoire vive sans filet de sécurité. La solution s'appelle le swap, un mécanisme simple mais essentiel que tout administrateur système devrait connaître et configurer. Dans cet article, nous allons voir ce qu'est le swap, pourquoi il est indispensable sur un serveur, et comment le configurer correctement sur Linux.

Qu'est-ce que le swap ?

Le swap (ou espace d'échange) est une zone du disque dur que le système d'exploitation utilise comme extension de la mémoire vive (RAM). Quand la RAM est pleine, le noyau Linux déplace les données les moins utilisées vers le swap pour libérer de la place en mémoire.

Concrètement, c'est comme si votre bureau (la RAM) était trop petit pour tous vos dossiers. Au lieu de jeter des dossiers, vous les rangez temporairement dans un tiroir (le swap). C'est plus lent d'aller les chercher dans le tiroir que de les avoir directement sur le bureau, mais au moins vous ne perdez rien.

RAM vs Swap : les différences

  • RAM : Mémoire physique ultra-rapide (nanosecondes d'accès), coûteuse, limitée par le matériel
  • Swap : Espace disque utilisé comme mémoire, beaucoup plus lent (millisecondes sur SSD), mais facilement extensible
# Vérifier l'état de la RAM et du swap
free -h

# Exemple de sortie :
#                total    used    free    shared  buff/cache  available
# Mem:           1.9Gi    803Mi   93Mi    32Mi    1.0Gi       887Mi
# Swap:          2.0Gi    0B      2.0Gi

Pourquoi le swap est indispensable sur un serveur

1. Protection contre le OOM Killer

Sans swap, quand la RAM est pleine, le noyau Linux active le OOM Killer (Out Of Memory Killer). Ce mécanisme tue brutalement les processus qui consomment le plus de mémoire pour sauver le système. Le problème ? C'est souvent votre base de données MySQL ou votre application qui se fait tuer en premier, ce qui provoque un crash de votre site.

# Vérifier si le OOM Killer a sévi récemment
sudo dmesg | grep -i "out of memory"
sudo journalctl | grep -i "oom"

# Exemple de message OOM :
# Out of memory: Killed process 1234 (mysqld) total-vm:1234kB

Avec du swap, le système a une marge de manœuvre. Au lieu de tuer des processus, il déplace temporairement des données vers le disque. Votre site ralentit peut-être un peu, mais il reste en ligne.

2. Gestion des pics de charge

Un serveur web ne consomme pas toujours la même quantité de mémoire. Certains événements provoquent des pics :

  • Un article qui devient viral sur les réseaux sociaux
  • Un bot qui crawle toutes vos pages en même temps
  • Une tâche cron qui traite un gros volume de données
  • Une mise à jour système qui nécessite de la mémoire temporaire

Le swap absorbe ces pics sans que votre serveur ne tombe.

3. Optimisation de la mémoire par le noyau

Même avec suffisamment de RAM, le swap permet au noyau Linux d'être plus intelligent dans sa gestion de la mémoire. Le système peut déplacer vers le swap des pages mémoire inactives (un processus qui dort depuis des heures) pour garder la RAM disponible pour les processus actifs. C'est une optimisation, pas un signe de problème.

4. Hibernation et maintenance

Le swap est nécessaire pour l'hibernation du système (suspend-to-disk). Sur un serveur, c'est moins courant, mais le swap facilite aussi certaines opérations de maintenance qui nécessitent temporairement plus de mémoire que d'habitude.

Swap sur SSD vs HDD

La performance du swap dépend fortement du type de stockage :

  • SSD (NVMe/SATA) : Le swap sur SSD est assez rapide. Les temps d'accès sont de l'ordre de la microseconde. C'est environ 100 fois plus lent que la RAM, mais suffisamment rapide pour ne pas bloquer le système
  • HDD : Le swap sur disque mécanique est très lent (millisecondes d'accès). Le système devient presque inutilisable si le swap est fortement sollicité

La bonne nouvelle : la plupart des VPS modernes utilisent des SSD, donc le swap fonctionne correctement.

Quelle taille de swap choisir ?

La taille idéale du swap dépend de votre quantité de RAM et de votre usage :

RAM disponible Swap recommandé Cas d'usage
512 Mo - 1 Go 2 Go Petit VPS, site vitrine
2 Go 2 - 4 Go VPS standard, WordPress, Laravel
4 Go 2 - 4 Go Serveur applicatif moyen
8 Go+ 2 - 4 Go Serveur de production, BDD

Règle générale : Sur un serveur, un swap de 2 Go est un bon compromis. Au-delà de 4 Go, le swap est rarement utile car si vous l'utilisez autant, c'est que vous avez besoin de plus de RAM.

Guide pratique : Configurer le swap sur Linux

Étape 1 : Vérifier l'état actuel

# Vérifier s'il y a déjà du swap
sudo swapon --show

# Vérifier la mémoire disponible
free -h

# Vérifier l'espace disque disponible
df -h /

Étape 2 : Créer le fichier swap

# Créer un fichier swap de 2 Go
sudo fallocate -l 2G /swapfile

# Si fallocate ne fonctionne pas (certains systèmes de fichiers)
# sudo dd if=/dev/zero of=/swapfile bs=1M count=2048

# Sécuriser les permissions (important !)
sudo chmod 600 /swapfile

# Formater le fichier en swap
sudo mkswap /swapfile

# Activer le swap
sudo swapon /swapfile

Étape 3 : Rendre le swap permanent

Sans cette étape, le swap disparaît au prochain redémarrage du serveur.

# Ajouter le swap au fichier fstab
echo "/swapfile none swap sw 0 0" | sudo tee -a /etc/fstab

# Vérifier que la ligne a été ajoutée
cat /etc/fstab | grep swap

Étape 4 : Configurer le swappiness

Le paramètre swappiness contrôle à quel point le noyau est "agressif" dans son utilisation du swap. La valeur va de 0 à 100 :

  • 0 : Le swap n'est utilisé qu'en dernier recours (quand la RAM est vraiment pleine)
  • 10 : Valeur recommandée pour les serveurs - le swap est utilisé occasionnellement
  • 60 : Valeur par défaut sur Ubuntu - trop agressive pour un serveur
  • 100 : Le swap est utilisé très agressivement (déconseillé)
# Voir la valeur actuelle
cat /proc/sys/vm/swappiness

# Changer temporairement (jusqu'au prochain reboot)
sudo sysctl vm.swappiness=10

# Rendre permanent
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf

# Vérifier
sudo sysctl vm.swappiness

Étape 5 : Vérifier que tout fonctionne

# Vérifier le swap
free -h
sudo swapon --show

# Résultat attendu :
# NAME      TYPE  SIZE  USED  PRIO
# /swapfile file  2G    0B    -2

Surveiller l'utilisation du swap

Une fois le swap configuré, il est important de surveiller son utilisation pour détecter les problèmes de mémoire.

# Vue d'ensemble rapide
free -h

# Détail par processus (les plus gourmands en mémoire)
ps aux --sort=-%mem | head -10

# Surveiller en temps réel
watch -n 5 free -h

# Voir quel processus utilise le swap (Linux 2.6.34+)
for file in /proc/*/status; do
  awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file
done | sort -k 2 -n -r | head -10

# Avec htop (plus visuel)
htop

Quand le swap est trop utilisé : que faire ?

Si votre swap est constamment sollicité (plus de 50% utilisé), c'est un signal d'alarme. Voici les actions à prendre :

1. Identifier le coupable

# Les 10 processus les plus gourmands en mémoire
ps aux --sort=-%mem | head -10

# Mémoire utilisée par les conteneurs Docker
docker stats --no-stream

2. Optimiser MySQL/MariaDB

MySQL est souvent le plus gros consommateur de mémoire. Ajustez ces paramètres dans /etc/mysql/my.cnf :

[mysqld]
# Réduire le buffer pool (défaut: 128M, ajuster selon votre RAM)
innodb_buffer_pool_size = 256M

# Limiter les connexions simultanées
max_connections = 50

# Réduire le cache des requêtes
query_cache_size = 0
query_cache_type = 0

3. Optimiser PHP-FPM

# Dans /etc/php/8.x/fpm/pool.d/www.conf
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
pm.max_requests = 500

4. Upgrader la RAM

Si les optimisations ne suffisent pas, il est temps de passer à un VPS avec plus de RAM. C'est souvent la solution la plus simple et la moins chère en termes de temps passé.

Swap et Docker : attention aux pièges

Si vous utilisez Docker, il y a quelques points importants à connaître :

  • Docker peut limiter le swap par conteneur : Utilisez --memory-swap pour contrôler la quantité de swap qu'un conteneur peut utiliser
  • Le swap de l'hôte protège tous les conteneurs : Même si un conteneur consomme trop, le swap de l'hôte empêche le OOM Killer de tuer d'autres conteneurs
  • Surveillez avec docker stats : Cette commande montre la mémoire utilisée par chaque conteneur en temps réel
# Limiter la mémoire d'un conteneur avec swap
docker run -d --memory=512m --memory-swap=1g mon-app

# Voir l'utilisation mémoire de tous les conteneurs
docker stats --no-stream --format "table {{.Name}}\t{{.MemUsage}}\t{{.MemPerc}}"

Supprimer ou redimensionner le swap

Si vous devez modifier votre swap :

# Désactiver le swap
sudo swapoff /swapfile

# Supprimer le fichier
sudo rm /swapfile

# Retirer la ligne du fstab
sudo sed -i '/swapfile/d' /etc/fstab

# Pour redimensionner : recréer avec une nouvelle taille
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

Partition swap vs Fichier swap

Il existe deux façons de configurer le swap :

  • Fichier swap (recommandé) : Plus flexible, facile à redimensionner, pas besoin de repartitionner le disque. C'est la méthode que nous avons utilisée dans ce guide
  • Partition swap : Légèrement plus performant sur HDD, mais rigide et difficile à modifier. Pertinent seulement sur des serveurs avec des disques mécaniques

Sur un VPS avec SSD, le fichier swap est le meilleur choix.

Bonnes pratiques

  • Toujours configurer du swap sur les serveurs avec moins de 4 Go de RAM
  • Swappiness à 10 pour les serveurs (pas la valeur par défaut de 60)
  • Surveiller régulièrement l'utilisation du swap avec free -h
  • Ne pas compter sur le swap comme remplacement de la RAM : c'est un filet de sécurité, pas une solution permanente
  • Permissions 600 sur le fichier swap (sécurité)
  • Ajouter au fstab pour que le swap survive aux redémarrages
  • Alerting : Configurez des alertes quand l'utilisation du swap dépasse 50%

Conclusion

Le swap est un mécanisme simple mais vital pour la stabilité de votre serveur. En quelques commandes, vous ajoutez un filet de sécurité qui protège votre site contre les crashes mémoire. Sur un petit VPS, c'est la différence entre un site qui tombe en pleine nuit et un site qui reste en ligne même sous pression. Configurez-le dès le premier jour de votre serveur, réglez le swappiness à 10, et surveillez son utilisation. Votre uptime vous remerciera.

En résumé : 5 commandes suffisent pour sécuriser votre serveur avec du swap : fallocate, chmod, mkswap, swapon, et une ligne dans /etc/fstab. Ne négligez pas cette étape.

Tags

DevOps Linux VPS Swap Administration Système

Partagez cet article

Twitter Facebook LinkedIn
JY
Jordane YENO

Developpeur Full Stack passionne par le web et les nouvelles technologies

En savoir plus

Articles similaires