Sommaire :
Ton serveur rame comme un pingouin dans le sable ? Tes applications crashent dès que tu lances un htop
? Il est temps de parler swap, cette zone mystérieuse du disque dur qui fait office de « béquille » quand ta RAM dit « j’abandonne ».
Spoiler : on va éviter les manipulations de partition à la hache et privilégier des méthodes qui ne casseront pas ton système en prod.

Qu’est-ce que le swap et pourquoi tu en as (vraiment) besoin
Le swap, c’est un peu comme ton canapé d’appoint quand ta belle-mère débarque à l’improviste : pas idéal, mais ça dépanne. Quand ta RAM est pleine, Linux balance intelligemment les données les moins utilisées vers cet espace de stockage temporaire.
📋 À savoir :
Contrairement aux idées reçues, avoir du swap même avec beaucoup de RAM reste une bonne pratique. Linux s’en sert pour optimiser la gestion mémoire et éviter les crashs d’applications.
Vérifier l’état actuel de ton swap
Avant de jouer les apprentis sorciers, on regarde ce qu’on a sous le capot :
# État actuel du swap
sudo swapon --show
# Utilisation mémoire globale
free -h
# Détail des partitions
lsblk
Si tu vois Swap: 0B
dans le free -h
, c’est que tu n’as pas de swap configuré.
Méthode recommandée : créer un fichier swap (pas une partition)
Oublie les manipulations hasardeuses avec fdisk
. On va créer un fichier swap, c’est plus propre et moins risqué.
Étape 1 : Créer le fichier swap
# Créer un fichier de 2Go (ajuste selon tes besoins)
sudo fallocate -l 2G /swapfile
# Ou si fallocate n'est pas dispo :
sudo dd if=/dev/zero of=/swapfile bs=1024 count=2097152
Étape 2 : Sécuriser les permissions
# Seul root peut lire/écrire le fichier
sudo chmod 600 /swapfile
# Vérifier les permissions
ls -lh /swapfile
⚠️ Erreur fréquente :
Ne jamais laisser le fichier swap accessible en lecture à d’autres utilisateurs. C’est une faille de sécurité majeure.
Étape 3 : Formater et activer
# Transformer le fichier en swap
sudo mkswap /swapfile
# Activer le swap
sudo swapon /swapfile
# Vérifier que ça marche
sudo swapon --show
Étape 4 : Rendre permanent
Pour que le swap survive aux redémarrages, on l’ajoute dans /etc/fstab
:
# Backup du fstab (au cas où)
sudo cp /etc/fstab /etc/fstab.bak
# Ajouter la ligne swap
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Optimiser les performances avec swappiness
La swappiness détermine à quel point Linux préfère utiliser le swap plutôt que la RAM. Par défaut, c’est souvent trop agressif.
# Voir la valeur actuelle
cat /proc/sys/vm/swappiness
# Temporaire : réduire l'utilisation du swap
sudo sysctl vm.swappiness=10
# Permanent : éditer /etc/sysctl.conf
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
💡 Bonnes pratiques :
- Serveur : swappiness entre 1-10
- Desktop : swappiness entre 10-60
- Jamais 0 : ça désactive complètement le swap, pas malin
Gérer plusieurs fichiers swap (si tu as plusieurs disques)
Tu peux avoir plusieurs fichiers swap et jouer avec les priorités :
# Créer un second fichier swap sur un autre disque
sudo fallocate -l 4G /mnt/fast-ssd/swapfile2
sudo chmod 600 /mnt/fast-ssd/swapfile2
sudo mkswap /mnt/fast-ssd/swapfile2
# Activer avec priorité élevée (plus le chiffre est haut, plus prioritaire)
sudo swapon --priority=5 /mnt/fast-ssd/swapfile2
sudo swapon --priority=1 /swapfile
# Dans /etc/fstab :
# /swapfile none swap sw,pri=1 0 0
# /mnt/fast-ssd/swapfile2 none swap sw,pri=5 0 0
Redimensionner un fichier swap existant
Pas besoin de tout recréer, on peut ajuster la taille :
# Désactiver le swap temporairement
sudo swapoff /swapfile
# Redimensionner (ici 4G)
sudo fallocate -l 4G /swapfile
# Recréer la signature swap
sudo mkswap /swapfile
# Réactiver
sudo swapon /swapfile
⚠️ Attention :
Ne jamais faire ça sur un système en production sous charge. Privilégie les heures creuses ou une maintenance programmée.
Supprimer proprement un swap
Si tu veux nettoyer :
# Désactiver
sudo swapoff /swapfile
# Retirer de /etc/fstab (éditer manuellement)
sudo nano /etc/fstab
# Supprimer le fichier
sudo rm /swapfile
Monitoring et debug
Quelques commandes pratiques pour surveiller :
# Utilisation en temps réel
watch -n 1 'free -h && echo "---" && sudo swapon --show'
# Processus qui utilisent le plus de swap
for file in /proc/*/status ; do awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done | sort -k 2 -n -r | head -10
# I/O du swap
iostat -x 1
Cas d’usage pratiques
Serveur web avec 2GB RAM : 2-4GB de swap
Base de données : 1-2x la RAM si < 8GB, sinon 8-16GB max
Conteneurs Docker : au minimum 1GB, plus si tu fais du build d’images
Si tu utilises des conteneurs, pense à consulter mon guide sur la sécurisation des serveurs Linux pour une approche globale de l’optimisation système.
En résumé
✅ Privilégie les fichiers swap aux partitions
⚙️ Ajuste la swappiness selon ton usage
🎯 Surveille l’utilisation avec free
et htop
🔒 Sécurise les permissions (chmod 600)
💡 Dimensionne intelligemment selon ton workload
Le swap n’est pas l’ennemi, c’est ton assurance-vie système. Bien configuré, il te sauvera la mise quand ta webapp Java décidera de bouffer toute la RAM d’un coup.
Pour aller plus loin dans l’optimisation système, mon article sur la modification de l’heure serveur Linux couvre d’autres aspects essentiels de l’administration.