Comprendre le swap d'un VPS
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
free -h
swapon --show
cat /proc/swaps
grep -E 'SwapTotal|SwapFree' /proc/meminfoSi 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
fallocatepuisswapon /swapfileéchoue le plus souvent avecOperation not permitted; mknodest refusé, donc pas de périphérique de swap à la main ;/proc/sys/vm/swappinessest généralement en lecture seule dans l'espace de noms du conteneur ;- ajouter une ligne de swap dans
/etc/fstabpeut 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 :
free -h
ps -eo pid,rss,comm --sort=-rss | head -n 15
vmstat 1 5
sudo journalctl -k | grep -i oomLa 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, ajoutezpm.max_requestspour 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
maxmemoryet une politique d'éviction ; - Nginx : réduisez
worker_processesetworker_connectionssi 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
- Surveiller la disponibilité de son VPSMettre en place une vérification externe, des alertes utiles et une méthode pour distinguer panne réseau, serveur et application.
- Nettoyer les logs et le cacheLibérer de l'espace disque sans casser de service, en traitant journaux, paquets, caches et images Docker dans le bon ordre.
- Automatiser les mises à jour de sécuritéConfigurer unattended-upgrades pour corriger les failles sans intervention, puis vérifier que le mécanisme tourne vraiment.