kipmi0: что за зверь?
Mar 28, 2016 21:46 · 292 words · 2 minute read
С недавних пор на сервере с ОС Debian Wheezy процесс kipmi0
загружает на 100% одно ядро процессора. Давайте разберемся!
Процесс kipmi0
может на 100% загружать одно из ядер процессора в случае если IPMI (Intelligent Platform Management Interface) устройство занято или не отвечает. Таким устройством в нашем случае может быть BMC (Baseboard Management Controller) или IMM (Integrated Management Controller).
В на сайте поддержки IBM пишут, что это нормальная ситуация и увеличение утилизации процессора можно игнорировать. Также указано, что проблема может исчезнуть после перезагрузки, но не всегда есть возможность перезагрузить сервер.
Устранить процесс «классическим» способом (kill
, pkill
, kill -9
, …) не получается, но решение все же есть. Сама проблема происходит от двух модулей ядра (ipmi_si
и ipmi_msghandler
), которые используются пакетом lm-sensors
.
Проверить, загружены ли модули можно командой:
lsmod | grep ipmi
ipmi_si 36954 0
ipmi_msghandler 35965 1 ipmi_si
Далее выполняем:
rmmod ipmi_si
rmmod ipmi_msghandler
Можно также отключить загрузку модуля ipmi_si
в конфигурационном файле /etc/modules
, закомментировав соответствующую строку:
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.
loop
# Generated by sensors-detect on Wed Apr 11 14:47:29 2012
# Adapter drivers
#ipmi-si
# Chip drivers
adm1021
bonding
drbd
После внесения изменений перезапускаем lm-sensors
:
/etc/init.d/lm-sensors restart
Существует еще один вариант решения проблемы — внимательно ознакомиться с документацией IPMI и изменить параметр kipmid_max_busy_us
в соответствии с вашими нуждами. В моем случае достаточно выполнить следующую команду:
echo 100 > /sys/module/ipmi_si/parameters/kipmid_max_busy_us
Для того, чтобы это значение не изменилось после перезагрузки сервера, в каталоге /etc/modprobe.d/
создаем файл ipmi.conf
:
touch /etc/modprobe.d/ipmi.conf
Содержимое файла будет следующим:
# Prevent kipmi0 from consuming 100% CPU
options ipmi_si kipmid_max_busy_us=100