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