Kipmi0 з'їдає до 99,8% ЦПУ на центос 6,4


15

У нас є CentOS 6.4, і показник kipmi0показує як 99,8% процесора і 0,0% пам'яті та середнього завантаження - 1,00. Що нам робити, щоб виправити це?


ви повинні почати з читання цього www-01.ibm.com/support/…
squareborg

2
@ Я читав його раніше, тому він просто говорить ігнорувати, чи слід просто ігнорувати, але інші мої машини не мають цього питання?
biz14

Чи інші системи ідентичні цій системі? Вам доведеться визначити, що вони є. Між ними має бути щось принципово інше. Прошивка? Ті ж версії RPM?
slm

@Да є дві ті самі машини з однаковими центрами 6.4, що мені зараз шукати?
biz14

Порівняйте результати lshwта dmidecodeмої наступні напрямки, на які слід звернути увагу.
slm

Відповіді:


5

Налагодження проблеми

Чи інші системи ідентичні цій системі? Вам доведеться визначити, що вони є. Між ними має бути щось принципово інше. Прошивка? Ті ж версії RPM?

Ви можете використовувати такі інструменти, як lshw, dmidecodeі дивлячись у dmesgжурнал, щоб отримати підказки щодо того, що відрізняється та в чому полягає першопричина.

Я отримаю хорошу базову лінію встановлених RPM, запустивши цю команду в одній із систем, яка не виставляє цієї проблеми, і тій, яка є, і порівняти списки пакетів, щоб переконатися, що вони всі в одній версії.

 # machine #1
 $ rpm -aq | sort -rn > machine1_rpms.txt

 # machine #2
 $ rpm -aq | sort -rn > machine2_rpms.txt     

Потім отримайте файли на тій же машині і зробіть sdiff з двох файлів:

 sdiff machine1_rpms.txt machine2_rpms.txt

Потенційна причина №1

На веб-сайті IBM був цей текстовий текст під назвою: Kipmi0 може показати посилене використання процесора в Linux щодо цієї проблеми. Відповідно до цього питання, ви можете по суті ігнорувати проблему.

опис випуску

Процес kipmi0 може виявити збільшення використання процесора в Linux. Використання може збільшитися до 100%, коли пристрій IPMI (Інтелектуальний інтерфейс управління платформою), такий як BMC (контролер управління базовою дошкою) або IMM (інтегрований контролер управління) зайнятий або не реагує на реакцію.

Виправити

Не потрібно виправляти. Вам слід ігнорувати посилене використання процесора, оскільки це не впливає на фактичну продуктивність системи.

Обхід

  1. Якщо ви використовуєте пристрій IPMI, скиньте BMC або перезавантажте систему.
  2. Якщо не використовується пристрій IPMI, зупиніть службу IPMI, видавши таку команду:

    послуга ipmi зупинка

Потенційне рішення №2

Я знайшов цю публікацію в блозі someones, просто названий: kipmi0 problem . Ця проблема звучала ідентично вашій. Проблема була пов'язана з проблемою з двома модулями ядра, які завантажувались як частина lm_sensorsпакета.

Це були два модулі ядра:

  • ipmi_si
  • ipmi_msghandler

Обхід

Ви можете видалити їх вручну за допомогою наступних команд:

rmmod ipmi_msghandler
rmmod ipmi_si

Щоб зробити це виправлення постійним, вам потрібно буде відключити завантаження цих модулів ядра в одному з lm_sensorsфайлів конфігурації, коментуючи їх так:

# /etc/sysconfig/lm_sensors
# MODULE_0=ipmi-si
# MODULE_1=ipmisensors
# MODULE_2=coretemp

Перезапустіть lm_sensorsпісля внесення цих змін:

/etc/init.d/lm_sensors

Я був на веб-сайті та в своїй системі, я не знаходжу цей файл / etc / sysconfig / lm_sensors. Щось кумедне, коли я роблю сортування в першому файлі - Asc, але другий файл є desc? По-друге, як вивести різницю у файл. Так, я також бачу досить велику різницю.
biz14

так, тепер я це зробив вдруге, це відсортовано відповідно до спадання. Я не розумію, як використовувати греп "|". Що ще я повинен зробити, щоб усунути цю проблему?
biz14

Все, що я казав, було це зробити: sdiff machine1_rpms.txt machine2_rpms.txt | grep "|"витягнути всі відмінності в / в 2 .txt файли. Є й інші способи, але це один із способів.
slm

Я запустив цю команду і ось вихід sdiff 12_rpms.txt 11_rpms.txt | grep "|" perl-DBI-1.609-4.el6.x86_64 | perl-Digest-SHA-5.47-131.el6_4.x86_64. 12_rpms - це проблема машини, а інша - без проблеми. Але коли я вручну дивлюсь, що 12_rpms має 247 рядків, а 11_rpms - 263, але sdiff - це лише один? Отже, яким повинен бути наступний мій крок на основі цієї різниці?
biz14

Опублікуйте ці файли також на pastebin.com .
slm

24

Згідно з документом IPMI :

цей потік може використовувати багато процесора залежно від продуктивності інтерфейсу. Це може витратити багато процесора та спричинити різні проблеми з виявленням непрацюючого процесора та використанням додаткової потужності. Щоб уникнути цього, kipmid_max_busy_us встановлює максимальну кількість часу в мікросекундах, що kipmid буде обертатися перед сном для галочки. Це значення встановлює баланс між продуктивністю та відходами процесора, і його потрібно налаштовувати на ваші потреби. Можливо, колись буде додано автоматичне налаштування, але це не проста справа, і навіть автонастроювання потрібно було б налаштувати на бажану продуктивність користувача.

Отже, ми можемо виконати цю команду для встановлення параметра kipmid_max_busy_us:

echo 100 > /sys/module/ipmi_si/parameters/kipmid_max_busy_us

У нашій системі після встановлення цього параметра процесор kipmi0 зменшився до 15%.

Ви можете спробувати це.

Щоб зміни були стійкими, ви можете налаштувати параметри модуля ядра ipmi_si.
Створіть файл /etc/modprobe.d/, тобто /etc/modprobe.d/ipmi.confдодайте наступний вміст: Тепер кожного разу, коли модуль ядра ipmi_si завантажується в ядро, параметр повинен бути автоматично і правильно встановлений.
# Prevent kipmi0 from consuming 100% CPU
options ipmi_si kipmid_max_busy_us=100


Хоча це може бути правильною відповіддю, найкращою практикою на веб-сайтах ДП є деталізація міркувань як частини вашої відповіді, а також цитування будь-яких зовнішніх посилань. Таким чином, якщо зовнішня ланка стає неіснуючою, логіка та міркування все ще помітні тут.
Drav Sloan

Чи існує стандартний спосіб її набуття чинності назавжди?
tgharold

У CentOS / RHEL цю команду можна зробити постійною, додавши її до /etc/rc.d/rc.local. Rc.local працює після всіх інших сценаріїв init.
tgharold

1

kipmi0 можна відключити на CentOS 6 повністю, додавши ipmi_si.force_kipmid=0як параметр ядра

Перевірте на екрані завантаження GRUB, виділивши ядро, яке потрібно завантажити, натисніть "a" для зміни параметрів та додавання ipmi_si.force_kipmid=0

Зробіть постійним, додавши ipmi_si.force_kipmid=0до відповідних ліній ядра в/boot/grub/grub.conf

ПРИМІТКА. У дистрибутивах, які мають ipmi_si як окремий модуль ядра, більш правильним є використання конфіденційного файлу modprobe.d. У CentOS ipmi_si вбудований у зображення ядра, тому конфігурації modprobe не працюють.


1

CentOS 6 має драйвер ipmi, зібраний в ядро. Якщо вам не потрібна підтримка ipmi, просто відключіть її grub.conf

ipmi_si.tryacpi=0 ipmi_si.trydmi=0 ipmi_si.trydefaults=0

1

Я знайшов наступну допомогу в цьому питанні:

ipmitool bmc info

Це, здається, розбуджує IPMI, і тоді він перестає використовувати 100% ядра.

Я також знайшов таке корисне:

echo 100 > /sys/module/ipmi_si/parameters/kipmid_max_busy_us

Також в минулому я міг на деяких серверах вирішити 100% використання процесора шляхом:

ipmitool lan print

і

ipmitool bmc reset cold

але в моєму останньому досвіді вищезазначені варіанти просто призведуть ipmitoolдо невідповіді та сидіння там, що призведе до Ctrl+C .

Сподіваємось, це комусь допомагає.


Чи є якась проблема echo 1 > /sys/module/ipmi_si/parameters/kipmid_max_busy_us?
Qian Chen

0

Я знайшов це під керуванням CentOS 7 і намагався зрозуміти, що його сприймає.

Для мене це був "ipmicfg" Supermicro із сценарію, який я написав, або щось подібне. Я просто pkilled це, і використання kipmi0 пішло.

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