Зомби процессы на HP Microserver

Пару дней назад случайно заметил странную картину на сервере HP Microserver Gen8 — лавинообразный рост количества запущенных процессов:

Иду в консоль и вижу огромное количество «зомби»-процессов:

user@server:~$ ps ax
 .............
 1354 ?        Z      0:00 [sh] <defunct>
 1548 ?        Z      0:00 [sh] <defunct>
 1734 ?        Z      0:00 [sh] <defunct>
 1966 ?        Z      0:00 [sh] <defunct>
 2157 ?        Z      0:00 [sh] <defunct>
 2335 ?        Z      0:00 [sh] <defunct>
 2407 ?        Z      0:00 [sh] <defunct>
 2600 ?        Z      0:00 [sh] <defunct>
 2639 ?        Z      0:00 [sh] <defunct>
 2793 ?        Z      0:00 [sh] <defunct>
 2862 ?        Z      0:00 [sh] <defunct>
 2995 ?        Z      0:00 [sh] <defunct>
 3066 ?        Z      0:00 [sh] <defunct>
 3180 ?        Z      0:00 [sh] <defunct>
 3253 ?        Z      0:00 [sh] <defunct>
 3403 ?        Z      0:00 [sh] <defunct>
 3450 ?        Z      0:00 [sh] <defunct>
 3653 ?        Z      0:00 [sh] <defunct>
 3701 ?        Z      0:00 [sh] <defunct>
 3838 ?        Z      0:00 [sh] <defunct>
 3950 ?        Z      0:00 [sh] <defunct>
 4024 ?        Z      0:00 [sh] <defunct>
 4179 ?        Z      0:00 [sh] <defunct>
 4217 ?        Z      0:00 [sh] <defunct>
 4375 ?        Z      0:00 [sh] <defunct>
 .............

Проце́сс-зо́мби, зо́мби (англ. zombie process, англ. defunct process) — дочерний процесс в Unix-системе, завершивший своё выполнение, но ещё присутствующий в списке процессов операционной системы, чтобы дать родительскому процессу считать код завершения.
Процесс при завершении освобождает все свои ресурсы (за исключением PID — идентификатора процесса) и становится «зомби» — пустой записью в таблице процессов, хранящей код завершения для родительского процесса.

Википедия

Все они стали появляться только с определённого дня. Раньше такого не наблюдалось. Но вроде никакого нового софта я в те дни не ставил.
Попробуем посмотреть происхождение процессов:

user@server:~$ ps faxo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm

STAT  EUID  RUID TT       TPGID  SESS  PGRP  PPID   PID %CPU COMMAND
..............
Ss       0     0 ?           -1   529   529     1   529  0.0 cron
Ssl      0     0 ?           -1   531   531     1   531  0.0 lxcfs
S        0     0 ?           -1   568   568     1   569  0.0 hpHelper
Z        0     0 ?           -1   568   568   569   754  0.0  \_ sh 
Z        0     0 ?           -1   568   568   569  2335  0.0  \_ sh 
Z        0     0 ?           -1   568   568   569  2639  0.0  \_ sh 
Z        0     0 ?           -1   568   568   569  2862  0.0  \_ sh 
Z        0     0 ?           -1   568   568   569  3066  0.0  \_ sh 
Z        0     0 ?           -1   568   568   569  3253  0.0  \_ sh 
Z        0     0 ?           -1   568   568   569  3450  0.0  \_ sh 
Z        0     0 ?           -1   568   568   569  3701  0.0  \_ sh 
Z        0     0 ?           -1   568   568   569  3950  0.0  \_ sh 
Z        0     0 ?           -1   568   568   569  4179  0.0  \_ sh 
Z        0     0 ?           -1   568   568   569  4375  0.0  \_ sh 
Z        0     0 ?           -1   568   568   569  4643  0.0  \_ sh 
Z        0     0 ?           -1   568   568   569  5016  0.0  \_ sh 
Z        0     0 ?           -1   568   568   569  5374  0.0  \_ sh 
..............

Ага, а это уже интереснее. Всё идёт от процесса hpHelper, который отвечает за систему «HP Agentless Management Service». Тут я вспомнил, что как раз примерно в те дни обновил iLO до последней версии. Идём в iLO и смотрим дату. Ну да, так оно и есть:

Получается, что последняя версия iLO конфликтует с демоном HP-AMS. Погуглив, я обнаружил, что проблема известная. Предлагается обновить HP-AMS до последней версии. Но я решил просто снести все пакеты HP, так как для меня они особо и не важны:

user@server:~$ sudo apt-get remove hp-ams hp-health

Перезагружаемся и через некоторое время снова смотрим график количества процессов:

Вот теперь всё отлично)