Просмотр полных аргументов командной строки программы в журналах убийцы OOM

8

Можно ли просмотреть полные аргументы командной строки программы в журналах OOM killler? То, что я вижу сейчас в / var / log / syslog:

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

У меня на компьютере много процессов beam.smp, ​​и не очень удобно выяснять, какой именно процесс был убит OOM killer.

sergeyz
источник

Ответы:

4
echo 1 > /proc/sys/vm/oom_dump_tasks

Кажется, что вы можете заставить ядро ​​отображать ошибки из-за нехватки памяти.

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

Позволяет создавать общесистемный дамп задач (исключая потоки ядра), когда ядро ​​выполняет OOM-уничтожение, и включает такую ​​информацию, как pid, uid, tgid, размер vm, rss, nr_ptes, swapents, счет oom_score_adj и имя. Это полезно, чтобы определить, почему был вызван убийца OOM, определить мошенническую задачу, которая его вызвала, и определить, почему убийца OOM выбрал задачу, которую он сделал, чтобы убить.

Если это установлено в ноль, эта информация подавляется. В очень больших системах с тысячами задач может оказаться невозможным сбросить информацию о состоянии памяти для каждой из них. Такие системы не должны принуждаться к снижению производительности в условиях OOM, когда информация может быть нежелательной.

Если для этого параметра установлено значение, отличное от нуля, эта информация отображается всякий раз, когда убийца OOM фактически убивает задачу захвата памяти.

HBruijn
источник
1
echo 1 > /proc/sys/vm/oom_dump_tasks

мне не очень помогло - в журнале все еще нет параметров командной строки.
Чтобы ретроспективно просмотреть командную строку убитого процесса, вы можете использовать поверх для записи активности системы.
если oom-killer убивает s / th, просто откройте поверх этого журнала, найдите процесс по PID из / var / log / syslog и нажмите клавишу «c», чтобы просмотреть командную строку процесса.

ИПК
источник