Accueil Société Mémoire, swap, OOM : pourquoi votre serveur tombe

Mémoire, swap, OOM : pourquoi votre serveur tombe

par

Les serveurs qui plantent sans prévenir, c’est le cauchemar de tout administrateur système. Votre application ralentit, les utilisateurs se plaignent, et soudain, tout s’arrête. Souvent, la cause se cache dans la gestion défaillante de la mémoire. Entre swap surchargé et OOM Killer qui frappe, décryptons ces mécanismes pour éviter les pannes.

Qu’est-ce que la mémoire sur un serveur Linux ?

La mémoire (ou RAM) est le carburant essentiel de tout serveur. Elle stocke temporairement les données que le processeur traite activement. Contrairement au disque dur, la RAM est ultra-rapide, mais volatile : un redémarrage efface tout.

Sur Linux, la mémoire se divise en mémoire physique (RAM installée) et mémoire virtuelle (extension via le swap). Les processus consomment de la mémoire via des pages de 4 Ko. Quand la RAM est pleine, le noyau Linux libère de l’espace en écrivant des pages « inactives » sur le disque (swap). Mais attention : le swap est lent, car il repose sur des I/O disques.

Mots-clés clés : mémoire physiquemémoire virtuelle, pages mémoire.

Le rôle du swap : allié ou ennemi ?

Le swap agit comme un filet de sécurité. Activé par défaut sur la plupart des distributions Linux (via swapon), il étend la mémoire disponible en utilisant l’espace disque. Par exemple, avec 8 Go de RAM et 4 Go de swap, votre serveur théoriquement gère 12 Go.

Mais le swap a un coût : les accès disque sont 100 à 1000 fois plus lents que la RAM. Si un processus accède à des données swappées, arrive le thrashing : le système passe son temps à swapper in/out, paralysant tout. Vérifiez avec free -h ou vmstat : un si (swap in) ou so (swap out) élevé signale le problème.

Conseil : Limitez le swap pour des serveurs performants (sysctl vm.swappiness=10), ou désactivez-le pour des workloads critiques. Découvrez-en davantage en cliquant ici.

Mots-clés clés : thrashingswappinessfree -h.

L’OOM Killer : l’exécuteur impitoyable

Quand la mémoire est épuisée et le swap saturé, Linux déclenche l’OOM Killer (Out Of Memory Killer). Ce mécanisme automatique sélectionne et tue le processus le plus « coupable » pour libérer de la mémoire.

Le choix repose sur le score OOM : calculé via oom_score_adj et la consommation mémoire. Les processus gourmands (bases de données, apps Java) sont prioritaires. Résultat ? Votre app principale meurt, provoquant des crashes en cascade.

Logs révélateurs : dmesg | grep -i 'killed process' ou /var/log/syslog. L’OOM frappe souvent sur des serveurs cloud sous-dimensionnés lors de pics de trafic.

Mots-clés clés : OOM Killeroom_score_adjdmesg.

Pourquoi votre serveur tombe-t-il ? Les causes courantes

Plusieurs scénarios mènent au chaos mémoire :

  • Fuites mémoire : Un processus (ex. : script PHP mal codé) accumule de la mémoire sans la libérer. Surveillez avec top ou htop.

  • ** pics de charge** : Trafic soudain surcharge la RAM. Apps comme MySQL ou Node.js explosent.

  • Mauvaise configuration : Trop de swap inutile ou overcommit_memory mal réglé (sysctl vm.overcommit_memory=1 permet d’allouer plus que la RAM physique).

  • Conteneurs Docker : Limites mémoire par défaut inexistantes causent des OOM en cascade.

Exemple concret : Un serveur web avec 4 Go RAM gère 100 connexions Nginx + Apache. Une attaque DDoS swapperait tout, puis OOM.

Mots-clés clés : fuites mémoireovercommit_memory, Docker OOM.

Solutions pour stabiliser votre serveur

Prévenir vaut mieux que guérir. Voici un plan d’action :

  1. Monitorez proactivement : Installez Prometheus + Grafana ou sar pour alerter sur >80% RAM.

  2. Optimisez les processus : Utilisez ulimit -v pour limiter la mémoire par utilisateur, ou cgroup v2 pour conteneurs.

  3. Ajustez le noyau : Baissez vm.swappiness à 10, activez earlyoom pour tuer avant l’OOM Killer.

  4. Ajoutez de la RAM : Passez à 16-32 Go sur AWS/GCP pour scaler verticalement.

  5. Cachez intelligemment : Redis/Memcached pour offloader la mémoire applicative.

Testez avec stress --vm 2 --vm-bytes 1G pour simuler une surcharge.

Mots-clés clés : earlyoom, cgroups, monitoring RAM.

Maîtrisez la mémoire pour un serveur increvable

Mémoireswap et OOM forment un trio fatal si mal géré, mais des outils simples les domptent. Un serveur stable booste votre productivité et votre SEO (pages rapides = bon ranking Google). Appliquez ces conseils dès aujourd’hui !

Articles Similaires