Comprendre le swap d'un VPS

3 min de lecture07 novembre 2026

Quand la RAM se remplit, le noyau peut déplacer des pages peu utilisées vers le disque : c'est le swap. Il évite un arrêt immédiat, mais il est des centaines de fois plus lent que la mémoire vive. Sur un VPS en conteneur, le swap ne se configure pas comme sur une machine physique, et le confondre avec de la RAM supplémentaire mène à de mauvaises décisions.

À quoi sert le swap

Le swap absorbe les pics temporaires et garde en mémoire les pages réellement actives. Il ne rajoute pas de capacité : si la RAM et le swap sont pleins en même temps, le noyau déclenche l'OOM killer, qui tue un processus pour libérer de la mémoire. Pour une application, cela se traduit par un redémarrage brutal, pas par un ralentissement progressif.

Vérifier ce qui est disponible

Texte
free -h
swapon --show
cat /proc/swaps
grep -E 'SwapTotal|SwapFree' /proc/meminfo

Si SwapTotal vaut 0, aucun swap n'est visible dans le conteneur. Ce n'est pas forcément une anomalie : dans un conteneur, la mémoire et le swap peuvent être gérés par la plateforme et la valeur exposée au conteneur peut rester nulle même si la plateforme dispose de swap.

Ce qu'un conteneur système permet

Un VPS NeoHeberg est un conteneur système isolé. Vous y êtes root, mais vous n'avez pas les droits sur l'infrastructure qui l'exécute. Conséquences concrètes :

  • créer un fichier de swap avec fallocate puis swapon /swapfile échoue le plus souvent avec Operation not permitted ;
  • mknod est refusé, donc pas de périphérique de swap à la main ;
  • /proc/sys/vm/swappiness est généralement en lecture seule dans l'espace de noms du conteneur ;
  • ajouter une ligne de swap dans /etc/fstab peut empêcher un démarrage propre.

Ne cherchez donc pas à régler le swap comme sur un serveur dédié. Considérez-le comme une caractéristique de la plateforme et travaillez sur la consommation réelle.

Réduire la pression mémoire

Mesurez d'abord qui consomme :

Bash
free -h
ps -eo pid,rss,comm --sort=-rss | head -n 15
vmstat 1 5
sudo journalctl -k | grep -i oom

La colonne si/so de vmstat indique les échanges mémoire vers le disque. Une valeur durablement non nulle signale une pression réelle. Réglez ensuite les plus gros consommateurs :

  • PHP-FPM : baissez pm.max_children, ajoutez pm.max_requests pour recycler les workers ;
  • MariaDB : ajustez innodb_buffer_pool_size (souvent 25 à 50 % de la RAM) ;
  • Node.js : limitez le tas avec --max-old-space-size ;
  • Redis : fixez maxmemory et une politique d'éviction ;
  • Nginx : réduisez worker_processes et worker_connections si nécessaire.

Redémarrez le service concerné, puis mesurez à nouveau. Une seule modification à la fois permet de savoir ce qui a produit l'effet.

Bonnes pratiques

  • Ne désactivez pas le swap sans raison : il protège des pics.
  • Ne comptez pas sur lui pour tenir une charge permanente.
  • Surveillez la tendance sur plusieurs jours, pas une capture instantanée.
  • Si les processus sont tués malgré des réglages raisonnables, passez à une offre avec plus de RAM : le swap n'est pas un plan de capacité.

Publicité

Cet article vous a-t-il aidé ?

À lire aussi