Member 10637246 Ответов: 1

Поиск какой java программы был убит linux OOM killer


Я развернул шесть java-программ на linux-сервере,некоторые были убиты. Я знаю, что могу использовать команду grep "Killed process" /var/log/messages, чтобы найти, какой процесс убит ядром linux.Но как я могу узнать, что 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 Ответов

Рейтинг:
1

Jochen Arndt

Было бы не очень полезно узнать, какие программы были убиты. Процессы выбираются ООМ-киллером в соответствии с внутренними решениями.

Если вы подозреваете, что некоторые процессы потребляют слишком много памяти, вы можете проверить использование памяти через регулярные промежутки времени вручную или с помощью инструмента мониторинга.

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

Если все процессы работают так, как задумано, все, что вы можете сделать, это предоставить больше оперативной памяти или включить / увеличить память подкачки (что может привести к плохой производительности).

Некоторые ссылки:
Out of memory: Kill process or sacrifice child – Plumbr[^]
Как настроить Linux Out of Memory Killer[^]