Нене, просто coredump рабочего процесса не интересует.
Когда процесс завершается в результате получения сигнала(SIGSEGV, SIGBUS, SIGILL etc.) то может быть сгенерирована corefile для этого процесса.
Обычно по-умолчанию создание core-файлов выключено.
Нужно включить создание core файлов для процессов завершающихся по сигналу.
Обычно это делается правкой sysctl параметра kernel.core_pattern. В случае использования systemd - man systemd-coredump.
Далее, когда настроете запись core файлов, то для записей из лог файлов касательно срабатывания watchdog таймеров должны быть сгенерированы core-файлы.
Вот эти core файлы и интересуют.
Что касается потребления памяти - в действительности с виртуальной памяти все сложнее чем кажется.
Данные что atop, что ps, что top в качестве параметра rss показывают не совсем те что интересны и правдивы(ps -o rss,vsz).
Большая часть RSS памяти fork'ов сканирования drweb-se шарится между всеми форками.
Таким образом, совсем грубо говоря, нужно взять не средний RSS и умножить на количество fork'ов сканирования, а просто взять один RSS.
Более подробно детали можно поглядеть в /proc//smaps.
Например если смотреть на heap fork'ов:
ef205000-f1c00000 rwxp 00000000 00:00 0
Size: 42988 kB
Rss: 42988 kB
Pss: 2528 kB
Shared_Clean: 0 kB
Shared_Dirty: 42988 kB
Private_Clean: 0 kB
Private_Dirty: 0 kB
Referenced: 4928 kB
Anonymous: 42988 kB
AnonHugePages: 34816 kB
Shared_Hugetlb: 0 kB
Private_Hugetlb: 0 kB
Swap: 0 kB
SwapPss: 0 kB
KernelPageSize: 4 kB
MMUPageSize: 4 kB
Locked: 0 kB
VmFlags: rd wr ex mr mw me ac sd
Видно что замапленный кусок памяти около 42МБ в действительности шариться между процессами(Shared Dirty) и правильный размер потребляемой памяти этим куском в пересчете на количество шарящих его процессов - около 2.5МБ.
Другими словами - процессы drweb-se потребляют значительно меньше памяти через среднее RSS по fork'ам сканирования умноженное на их количество.
Что же касается советов как можно повлиять на работу OOM-киллера:
1. Настроить приоритеты для OOM-киллера
2. Понизить количество сканирующих процессов drweb-se(изменить параметр ScanEngine.MaxForks, по-умолчанию значение 2 * hw.ncpu). Попробуйте поставить половину от текущего значения и понаблюдать.
Сообщение было изменено dbanschikov: 28 Ноябрь 2016 - 13:19