Що вбило мій процес?


7

У вас виникли проблеми з додатком, який постійно вбивається. Тут працює сервер RHEL5. Ми стикалися з процесом, і в кінці файлу слідів я отримую купу +++, вбитих повідомленнями SIGKILL +++ . SIGKILL не може бути спійманий, тому я намагаюся знайти спосіб відстежити, чому процес вбивається.

Я спробував використовувати деякі рекомендації Red Hat, такі як

auditctl -a exit,always -S kill 

яка, здавалося, не спрацювала. Я не бачив записів на вбивство в audit.log.

Ще одна рекомендація Red Hat - використовувати systemtap. Я встановив його через yum і спробував запустити stap із передбаченим сценарієм sigmon.stp. Sigmon.stp знаходиться на цій сторінці: Sigmon.stp Я використав команду, надану в розділі коментарів, і ось вихід:

# stap sigmon.stp -x 12647 SIGKILL -v
Pass 1: parsed user script and 85 library script(s) using 146868virt/23716res/3024shr/21404data kb, in 110usr/10sys/116real ms.
semantic error: while resolving probe point: identifier 'kernel' at /usr/share/systemtap/tapset/signal.stp:60:37
        source: probe __signal.send.send_sigqueue = kernel.function("send_sigqueue")
                                                    ^
semantic error: missing x86_64 kernel/module debuginfo under '/lib/modules/2.6.18-308.13.1.el5/build'
semantic error: while resolving probe point: identifier '__signal' at :39:21
        source: probe signal.send = __signal.send.send_sigqueue,
                                    ^
semantic error: no match
semantic error: while resolving probe point: identifier 'signal' at sigmon.stp:30:7
        source: probe signal.send 
                      ^
Pass 2: analyzed script: 1 probe(s), 0 function(s), 0 embed(s), 0 global(s) using 150348virt/28920res/4696shr/24884data kb, in 30usr/40sys/81real ms.
Pass 2: analysis failed.  Try again with another '--vp 01' option.
Missing separate debuginfos, use: debuginfo-install kernel-2.6.18-308.13.1.el5.x86_64  

Хтось мав удачу використовувати команду stap? Чи є інший спосіб я дізнатися, що вбиває мій процес?


Чи ваш процес використовує багато пам'яті? Ядро вбиває процеси, використовуючи занадто багато пам’яті, якщо вони почнуть впливати на продуктивність системи.
тердон

1
"Що вбило мій процес?" -> "вбитий SIGKILL"
Diogo

2
А-а, але, мабуть, питання, напевно, "яка програма розсилала синкілл?"
Геннес

Будь-які підказки в системних журналах?
підозрюваний

Процес базується на Java, тому так, він використовує досить багато пам'яті. Ми накопичили пам’ять, і проблема залишається. Я читав про oom вбивцю, думаю, я спробую завтра відключити убивцю oom, щоб побачити, чи можу я виключити це. Але я не зміг знайти жодного сліду від убивці уему в колодах. І так, для Хеннеса, я шукаю, щоб звузити, хто відправив сигкіл.
zjherner

Відповіді:


2

SystemTap виглядає так, що він не може знайти символи налагодження для вашого ядра. Ви встановили необхідні пакети налагодження ядра для запущеного ядра? Посібник SystemTap говорить:

Для розгортання SystemTap вам потрібно встановити пакети SystemTap разом з відповідним набором загальних пакетів -devel, -debuginfo та -debuginfo для вашого ядра. Якщо у вашій системі встановлено кілька ядер, і ви хочете використовувати SystemTap для більш ніж одного ядра ядра, вам потрібно буде встановити пакети -devel і -debuginfo для кожної з цих версій ядра.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.