Ajouter de l'espace swap sur un VPS Linux (offres 512 Mo et 1 Go)
Sur un serveur cloud de 512 Mo ou 1 Go, une base de données, un pool PHP-FPM et une mise à jour de paquets peuvent facilement dépasser la RAM disponible au même moment. Le noyau déclenche alors l'OOM killer, qui arrête un processus, très souvent MySQL ou MariaDB. Ajouter de l'espace swap sur un VPS Linux fournit une zone de débordement sur disque : les pics de mémoire passagers ne font plus tomber les services. Ce guide crée un fichier swap sur Debian, Ubuntu, CentOS, Rocky Linux et AlmaLinux, le rend permanent et règle swappiness, avec des conseils sur l'utilité réelle du swap sur les petites offres.
Étape 1 : Vérifier la mémoire et le swap actuels
Commencez par regarder la RAM et le swap disponibles, l'espace disque libre, et si le noyau a déjà tué des processus faute de mémoire.
free -h
swapon --show # no output = no swap yet
df -h / # make sure there is enough free disk space
# Has the kernel already killed processes for lack of memory?
journalctl -k | grep -i -E 'out of memory|killed process'
Si swapon --show affiche déjà un périphérique ou un fichier, il suffit peut-être de le régler (étape 6) plutôt que d'en ajouter un autre.
Étape 2 : Choisir la taille du swap
Sur un VPS, le swap est une marge de sécurité, pas un substitut à la RAM. Ces tailles conviennent aux petites offres courantes :
| RAM de l'offre | Swap conseillé | Remarque |
|---|---|---|
| 512 Mo | 1 Go | Fortement recommandé |
| 1 Go | 1 à 2 Go | Conseillé avec une base de données ou un panneau |
| 2 Go | 1 Go | Marge de sécurité |
| 4 Go et plus | 1 à 2 Go ou aucun | Simple réserve de secours |
Le fichier swap occupe de la place sur le SSD du serveur : tenez compte de l'espace libre vu à l'étape 1.
Étape 3 : Créer le fichier swap avec fallocate ou dd
fallocate réserve l'espace instantanément. Certains systèmes de fichiers ne l'acceptent pas pour le swap ; utilisez alors dd, qui écrit le fichier bloc par bloc, plus lentement mais de façon sûre. Le fichier ne doit être lisible que par root.
# Fast method (ext4, XFS)
fallocate -l 1G /swapfile
# If fallocate fails, or swapon later reports "file has holes", use dd instead
rm -f /swapfile
dd if=/dev/zero of=/swapfile bs=1M count=1024 status=progress
chmod 600 /swapfile
ls -lh /swapfile
swapon peut échouer avec « Operation not permitted ».Étape 4 : Formater et activer le swap (mkswap et swapon)
mkswap écrit la signature swap et swapon l'active immédiatement, sans redémarrage.
mkswap /swapfile
swapon /swapfile
swapon --show
free -h
Étape 5 : Rendre le swap permanent dans /etc/fstab
Sans entrée dans fstab, le swap disparaît au prochain redémarrage. Sauvegardez le fichier, ajoutez une ligne, puis testez en désactivant le swap et en le réactivant avec swapon -a, qui lit fstab comme au démarrage.
cp /etc/fstab /etc/fstab.bak
echo '/swapfile none swap sw 0 0' >> /etc/fstab
# Test the fstab entry without rebooting
swapoff /swapfile
swapon -a
swapon --show
Étape 6 : Régler swappiness pour un VPS
vm.swappiness détermine avec quel empressement le noyau déplace des pages vers le swap. La valeur par défaut de 60 vise les postes de travail. Sur un serveur, 10 garde les données actives en RAM et n'utilise le swap qu'en cas de réelle pression. Baisser vfs_cache_pressure conserve un peu plus longtemps les métadonnées du système de fichiers en cache.
cat /proc/sys/vm/swappiness # often 60 by default
# Apply now
sysctl vm.swappiness=10
sysctl vm.vfs_cache_pressure=50
# Keep after reboot
cat > /etc/sysctl.d/99-swap.conf <<'EOF'
vm.swappiness=10
vm.vfs_cache_pressure=50
EOF
sysctl --system
Étape 7 : Quand le swap aide sur les offres 512 Mo - 1 Go (et quand il n'aide pas)
Le swap est adapté aux pics de courte durée : apt upgrade ou dnf update, compilation, installations Composer ou npm, sauvegardes nocturnes, ou base de données qui a brièvement besoin de plus de tampons. Il ne corrige pas une charge qui demande en permanence plus de mémoire que l'offre. Vérifiez si le système swappe activement :
# Watch the si (swap in) and so (swap out) columns for 10 seconds
vmstat 1 10
Quelques valeurs non nulles dans si et so sont normales. Des valeurs élevées en continu signifient que le serveur « thrashe » et tout devient lent. Réduisez alors la consommation (moins de workers PHP-FPM, tampons de base plus petits) ou ajoutez de la RAM au VPS : les serveurs cloud JUSTG peuvent recevoir de la RAM supplémentaire depuis l'espace client ou via un ticket.
Étape 8 : Redimensionner ou supprimer le fichier swap
# Resize to 2 GB or remove swap
swapoff /swapfile
rm -f /swapfile
# To remove completely, also delete the fstab line:
sed -i '\|^/swapfile |d' /etc/fstab
# To resize, repeat Step 3 and Step 4 with the new size (fstab line stays)
Questions fréquentes
Le swap use-t-il le SSD ?
Avec swappiness à 10 et un swap réservé aux pics, le volume écrit est faible. Un swap intensif et permanent indique qu'il faut plus de RAM, pas plus de swap.
Un fichier swap est-il plus lent qu'une partition swap ?
Sur les noyaux récents, la différence est négligeable. Un fichier est plus simple à créer, redimensionner et supprimer sur un VPS, d'où son choix dans ce guide.
MySQL est toujours tué après l'ajout du swap.
Consultez journalctl -k | grep -i oom et free -h. Si le swap est plein lui aussi, réduisez innodb_buffer_pool_size et le nombre de workers du serveur web, ou augmentez la RAM de l'offre.
Pour toute aide concernant le swap ou la mémoire de votre serveur, ouvrez un ticket sur https://www.justg.com/submitticket.php et le support technique JUSTG vous accompagnera.