Linux

Out of memory: Kill process

OOM Killer activé — un processus a été tué par manque de mémoire

Ce qui se passe réellement

Le noyau Linux a épuisé toute la mémoire physique et le swap disponibles. L'OOM Killer (Out Of Memory Killer) sélectionne le processus avec le score oom_score le plus élevé (combinaison de la quantité de mémoire utilisée et de la priorité) et lui envoie SIGKILL. Le message dans dmesg détaille le processus tué, son PID, sa consommation mémoire, et l'état de la mémoire au moment du kill.

Solutions

  1. 1Identifier le processus gourmand : dmesg | grep -i "killed process" pour voir quel processus a été tué.
  2. 2Ajouter du swap si insuffisant : fallocate -l 4G /swapfile && chmod 600 /swapfile && mkswap /swapfile && swapon /swapfile.
  3. 3Limiter la consommation mémoire d'un service avec cgroups : systemctl set-property monservice.service MemoryMax=2G.
  4. 4Augmenter la RAM physique si le problème est récurrent.
  5. 5Désactiver l'overcommit mémoire si nécessaire : sysctl vm.overcommit_memory=2 (les allocations seront refusées au lieu de tuer des processus).
Explorer tous les codes Linux
← Retour à Error Decoder