Нахождение какой Java-программы было убито убийцей Linux OOM - PullRequest
0 голосов
/ 24 августа 2018

Я развернул шесть программ Java на сервере Linux, некоторые из них были убиты. Я знаю, что могу использовать команду grep "Killed process" /var/log/messages, чтобы найти, какой процесс уничтожен linux-kernel. Но как мне узнать, что pid принадлежит моей java-программе. Возможно, он принадлежит другой java-программе на том же сервере. результат:

Aug 21 17:05:22 TEST_SERVER kernel: Killed process 2403, UID 700, (java)   total-vm:19970440kB, anon-rss:7472436kB, file-rss:356kB
Aug 21 17:05:22 TEST_SERVER kernel: Killed process 2405, UID 700, (java)    total-vm:19970440kB, anon-rss:7472456kB, file-rss:212kB
Aug 21 17:05:22 TEST_SERVER kernel: Killed process 2511, UID 800, (oracle) total-vm:26509852kB, anon-rss:48836kB, file-rss:4992488kB

Я знаю, что использование cd / proc / {pid} может найти детали pid, но теперь мой процесс был убит, и я использую команду, которая говорит, что не может найти файл или каталог. Я тоже смотрю на сообщения, но все равно ничего не делать.

 Out of memory: Kill process 2403 (java) score 114 or sacrifice child
 Aug 21 17:05:22 TEST_SERVER kernel: Killed process 2403, UID 700, (java)     total-vm:19970440kB, anon-rss:7472436kB, file-rss:356kB
 Aug 21 17:05:22 TEST_SERVER kernel: java invoked oom-killer: gfp_mask=0x201da,  order=0, oom_adj=0, oom_score_adj=0
 Aug 21 17:05:22 TEST_SERVER kernel: java cpuset=/ mems_allowed=0
 Aug 21 17:05:22 TEST_SERVER kernel: Pid: 22393, comm: java Not tainted 2.6.32-504.el6.x86_64 #1

1 Ответ

0 голосов
/ 24 августа 2018

Когда запускается OOM-killer, в / var / log / messages записывается несколько строк. Вместо того, чтобы использовать grep, вы должны смотреть вокруг строк, содержащих «Killed process», с less или vim Вы найдете строку типа «XXXX вызвал oom-killer:».

...