11 votes

Afficher les arguments complets de la ligne de commande du programme dans les journaux du tueur d'OOM.

Est-il possible de voir les arguments complets de la ligne de commande du programme dans les journaux des tueurs de l'OOM ? Ce que je vois maintenant dans /var/log/syslog est le suivant

Memory cgroup out of memory: Kill process 29187 (beam.smp) score 998 or sacrifice child
Killed process 29302 (cpu_sup) total-vm:4300kB, anon-rss:76kB, file-rss:272kB
beam.smp invoked oom-killer: gfp_mask=0xd0, order=0, oom_score_adj=0
beam.smp cpuset=/ mems_allowed=0-3

J'ai beaucoup de processus beam.smp sur ma machine et il n'est pas très pratique de trouver quel processus particulier a été tué par OOM killer.

0 votes

Avez-vous trouvé une solution à ce problème ?

5voto

snowdude Points 2790
echo 1 > /proc/sys/vm/oom_dump_tasks

ce qui semble être le maximum que le noyau puisse afficher en cas d'erreur de mémoire insuffisante.

https://www.kernel.org/doc/Documentation/sysctl/vm.txt

Permet d'effectuer un vidage des tâches à l'échelle du système (à l'exclusion des threads du noyau). système (à l'exclusion des threads du noyau) et comprend des informations informations telles que pid, uid, tgid, vm size, rss, nr_ptes, swapents, oom_score_adj score, et nom. Ces informations sont utiles pour déterminer pourquoi le tueur d'OOM a été invoqué, pour identifier la tâche malveillante qui l'a causé, et de déterminer pourquoi le tueur d'OOM a choisi la tâche à tuer.

Si cette valeur est égale à zéro, cette information est supprimée. Sur de très grands systèmes avec des milliers de tâches, il n'est pas toujours possible de vider les informations sur l'état de la mémoire pour chacune d'entre elles. De tels systèmes ne devraient pas être ne devraient pas être obligés de subir une pénalité de performance dans des conditions d'OOM lorsque l'information n'est pas souhaitable. l'information n'est pas forcément souhaitée.

Si cette valeur est différente de zéro, cette information est affichée chaque fois que l'OOM tue effectivement une tâche gourmande en mémoire.

2voto

atti Points 111
echo 1 > /proc/sys/vm/oom_dump_tasks

ne m'a pas beaucoup aidé - il n'y a toujours pas de paramètres de ligne de commande dans le journal.
pour voir rétrospectivement la ligne de commande du processus tué, vous pouvez utiliser au sommet de pour enregistrer l'activité du système.
si oom-killer tue s/th, il suffit d'ouvrir atop log pour ce temps, trouver votre processus par PID à partir de /var/log/syslog, et appuyez sur la touche 'c' pour voir la ligne de commande du processus.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X