kipmi0: что за зверь?

Mar 28, 2016 21:46 · 292 words · 2 minute read debian hardware

С недавних пор на сервере с ОС 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
tweet Share