GNU/Linux >> Tutoriels Linux >  >> Linux

Comment diagnostiquer les causes des processus de destruction oom-killer

Solution 1 :

Non, l'algorithme n'est pas si simpliste. Vous pouvez trouver plus d'informations dans :

http://linux-mm.org/OOM_Killer

Si vous souhaitez suivre l'utilisation de la mémoire, je vous recommande d'exécuter une commande telle que :

ps -e -o pid,user,cpu,size,rss,cmd --sort -size,-rss | head

Il vous donnera une liste des processus qui utilisent le plus de mémoire (et qui causent probablement la situation OOM). Supprimer le | head si vous préférez vérifier tous les processus.

Si vous mettez ceci sur votre cron, répétez-le toutes les 5 minutes et enregistrez-le dans un fichier. Gardez au moins quelques jours, afin de pouvoir vérifier ce qui s'est passé plus tard.

Pour les services critiques comme ssh, je recommanderais d'utiliser monit pour les redémarrer automatiquement dans une telle situation. Cela peut vous éviter de perdre l'accès à la machine si vous ne disposez pas d'une console distante.

Bonne chance,
João Miguel Neves

Solution 2 :

J'ai eu du mal avec ça récemment, parce que le ou les processus sur lesquels le tueur de oom piétine ne sont pas nécessairement ceux qui ont mal tourné. En essayant de diagnostiquer cela, j'ai découvert l'un de mes outils désormais préférés, au sommet.

Cet utilitaire est comme un top sur les stéroïdes. Sur un intervalle de temps prédéfini, il profile les informations système. Vous pouvez ensuite le rejouer pour voir ce qui se passe. Il met en évidence les processus qui sont à 80 %+ en bleu et à 90 %+ en rouge. La vue la plus utile est un tableau d'utilisation de la mémoire indiquant la quantité de mémoire allouée au cours de la dernière période. C'est celui qui m'a le plus aidé.

Outil fantastique - je ne peux pas en dire assez à ce sujet.

au sommet du moniteur de performances


Linux
  1. Comment effacer le cache mémoire sous Linux

  2. Comment tester Oom-killer depuis la ligne de commande ?

  3. Tuer les processus dans Raspbian

  4. Comment limiter l'utilisation de la mémoire des applications ?

  5. Linux commencera-t-il à tuer mes processus sans me demander si la mémoire est insuffisante ?

Comment effacer la mémoire d'échange sous Linux

Comment trouver les 10 principaux processus en cours d'exécution par utilisation de la mémoire et du processeur

Comment trouver les principaux processus en cours d'exécution par utilisation de la mémoire

Comment utiliser la commande PS

Comment trouver les principaux processus en cours d'exécution par utilisation de la mémoire et du processeur sous Linux

Comment profiler l'utilisation de la mémoire ?