Kipmi0 frisst bis zu 99,8% CPU auf Centos 6.4

15

Wir haben CentOS 6.4 und die kipmi0zeigt als 99,8% CPU und 0,0% Speicher und Last Durchschnitt ist 1,00. Was sollen wir tun, um dies zu korrigieren?

biz14
quelle
Beginnen Sie mit dem Lesen dieser www-01.ibm.com/support/…
0x7c0
2
@ Ich habe es schon einmal gelesen, daher steht dort nur "Ignorieren", sollte ich es einfach ignorieren, aber auf meinen anderen Rechnern tritt dieses Problem nicht auf?
biz14
Sind die anderen Systeme mit diesem System identisch? Sie müssen feststellen, dass sie sind. Es muss etwas geben, das sich grundlegend unterscheidet. Firmware? Gleiche RPM-Versionen?
slm
@Ja, es gibt zwei gleiche Maschinen mit gleichen Centos. 6.4 Wonach soll ich jetzt suchen?
biz14
Vergleichen Sie die Ergebnisse von lshwund sehen Sie dmidecodesich meine nächsten Bereiche an.
slm

Antworten:

5

Debuggen des Problems

Sind die anderen Systeme mit diesem System identisch? Du wirst feststellen müssen, dass sie es sind. Es muss etwas geben, das sich grundlegend unterscheidet. Firmware? Gleiche RPM-Versionen?

Sie können Tools wie lshw, dmidecodeund bei der Suche dmesgnach Hinweisen log, was anders ist und was die Ursache.

Wenn Sie diesen Befehl auf einem der Systeme ausführen, auf denen dieses Problem nicht auftritt, und auf dem anderen, auf dem die Paketlisten verglichen werden, um sicherzustellen, dass alle RPMs dieselbe Version haben, erhalten Sie eine gute Übersicht über die installierten RPMs.

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

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

Dann holen Sie sich die Dateien auf den gleichen Rechner und sdiff die 2 Dateien:

 sdiff machine1_rpms.txt machine2_rpms.txt

Mögliche Ursache Nr. 1

Die IBM Website hatte diesen Technote mit dem Titel: Kipmi0 kann eine erhöhte CPU-Auslastung unter Linux in Bezug auf dieses Problem anzeigen . Entsprechend dieser Ausgabe können Sie das Problem im Wesentlichen ignorieren.

Beschreibung des Problems

Der kipmi0-Prozess kann unter Linux eine erhöhte CPU-Auslastung aufweisen. Die Auslastung kann bis zu 100% ansteigen, wenn das IPMI-Gerät (Intelligent Platform Management Interface), z. B. ein BMC (Baseboard Management Controller) oder IMM (Integrated Management Controller), ausgelastet ist oder nicht reagiert.

Fix

Kein Update erforderlich. Sie sollten eine erhöhte CPU-Auslastung ignorieren, da dies keine Auswirkungen auf die tatsächliche Systemleistung hat.

Umgehung

  1. Wenn Sie ein IPMI-Gerät verwenden, setzen Sie den BMC zurück oder starten Sie das System neu.
  2. Wenn Sie kein IPMI-Gerät verwenden, beenden Sie den IPMI-Dienst, indem Sie den folgenden Befehl eingeben:

    Service IPMI zu stoppen

Mögliche Lösung Nr. 2

Ich fand diesen Beitrag in einem Blog mit dem Titel: kipmi0 problem . Dieses Problem klang identisch mit Ihrem. Das Problem wurde auf ein Problem mit zwei Kernelmodulen zurückgeführt, die als Teil des lm_sensorsPakets geladen wurden .

Dies waren die 2 Kernelmodule:

  • ipmi_si
  • ipmi_msghandler

Umgehung

Sie können diese mit den folgenden Befehlen manuell entfernen:

rmmod ipmi_msghandler
rmmod ipmi_si

Um diesen Fix dauerhaft zu machen, müssen Sie das Laden dieser bestimmten Kernelmodule in einer der lm_sensorsKonfigurationsdateien deaktivieren , indem Sie sie wie folgt auskommentieren :

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

Starten Sie neu, lm_sensorsnachdem Sie diese Änderungen vorgenommen haben:

/etc/init.d/lm_sensors
slm
quelle
Ich war sowohl auf der Website als auch in meinem System und finde diese Datei / etc / sysconfig / lm_sensors nicht. Etwas komisches, wenn ich die erste Datei sortiere, ist Asc, aber die zweite Datei ist desc? Zweitens, wie man den Unterschied in eine Datei ausgibt. Ja, ich sehe auch eine ganze Reihe von Unterschieden.
biz14
ja jetzt habe ich es das zweite mal gemacht es ist entsprechend absteigend sortiert. Ich verstehe nicht, wie man das grep "|" benutzt. Was kann ich noch tun, um das Problem zu beheben?
biz14
Alles was ich gesagt habe war, dies zu tun: sdiff machine1_rpms.txt machine2_rpms.txt | grep "|"Alle Unterschiede zwischen den 2 .txt-Dateien werden herausgezogen. Es gibt andere Möglichkeiten, dies zu tun, aber das ist eine Möglichkeit.
slm
Ich habe diesen Befehl ausgeführt und hier ist die Ausgabe 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. Das 12_rpms ist die Problemmaschine und das andere ist ohne das Problem. Aber wenn ich manuell nachschaue, haben 12_rpms 247 Zeilen und 11_rpms 263, aber der SDIFF ist nur eine? Was sollte nun mein nächster Schritt sein, basierend auf diesem Unterschied?
biz14
Bitte posten Sie diese Dateien auch auf pastebin.com .
slm
24

Nach dem IPMI-Dokument :

Dieser Thread kann abhängig von der Leistung der Schnittstelle viel CPU verbrauchen. Dies kann viel CPU verschwenden und verschiedene Probleme beim Erkennen von CPU-Leerlauf und bei der Verwendung von zusätzlichem Strom verursachen. Um dies zu vermeiden, legt kipmid_max_busy_us die maximale Zeit in Mikrosekunden fest, die sich das Kipmid dreht, bevor es für eine Zecke schläft. Dieser Wert stellt ein Gleichgewicht zwischen Leistung und CPU-Verschwendung her und muss an Ihre Anforderungen angepasst werden. Vielleicht wird eines Tages eine automatische Optimierung hinzugefügt, aber das ist keine einfache Sache, und selbst die automatische Optimierung müsste auf die vom Benutzer gewünschte Leistung abgestimmt werden.

Also können wir diesen Befehl ausführen, um den Parameter kipmid_max_busy_us zu setzen:

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

In unserem System ist nach dem Einstellen dieses Parameters die CPU von kipmi0 auf 15% gesunken.

Sie können dies versuchen.

Um die Änderungen dauerhaft zu speichern, können Sie die Optionen für das Kernelmodul ipmi_si konfigurieren.
Erstellen Sie eine Datei in /etc/modprobe.d/, /etc/modprobe.d/ipmi.confund fügen Sie den folgenden Inhalt hinzu: Jedes Mal, wenn das Kernelmodul ipmi_si in den Kernel geladen wird, sollte der Parameter automatisch und korrekt festgelegt werden.
# Prevent kipmi0 from consuming 100% CPU
options ipmi_si kipmid_max_busy_us=100

d0ngw
quelle
Auch wenn dies die richtige Antwort sein mag, wird es auf SE-Websites als bewährte Methode angesehen, die Begründung als Teil Ihrer Antwort anzugeben und externe Links anzugeben. Auf diese Weise können Sie die Logik und die Argumentation auch dann noch anzeigen, wenn der externe Link nicht mehr funktioniert.
Drav Sloan
Gibt es eine Standardmethode, um diese Wirkung dauerhaft zu erzielen?
Tgharold
Unter CentOS / RHEL kann dieser Befehl permanent gemacht werden, indem er zu /etc/rc.d/rc.local hinzugefügt wird. Die rc.local wird nach allen anderen Init-Skripten ausgeführt.
Tgharold
1

kipmi0 kann unter CentOS 6 vollständig deaktiviert werden, indem ipmi_si.force_kipmid=0ein Kernel-Parameter hinzugefügt wird

Testen Sie auf dem GRUB-Startbildschirm, indem Sie den Kernel markieren, den Sie booten möchten, und drücken Sie 'a', um die Parameter zu ändern und anzuhängen ipmi_si.force_kipmid=0

Machen Sie es dauerhaft, indem Sie ipmi_si.force_kipmid=0an die entsprechenden Kernel-Zeilen in anhängen/boot/grub/grub.conf

ANMERKUNG: In Distributionen mit ipmi_si als separatem Kernelmodul ist die Verwendung einer Datei modprobe.d conf geeigneter. In CentOS ist ipmi_si in das Kernel-Image integriert, sodass die Modprobe-Konfigurationen nicht funktionieren.

Dev
quelle
1

In CentOS 6 ist der ipmi-Treiber im Kernel kompiliert. Wenn Sie keine IPMI-Unterstützung benötigen, deaktivieren Sie einfach die Datei grub.conf

ipmi_si.tryacpi=0 ipmi_si.trydmi=0 ipmi_si.trydefaults=0
user72911
quelle
1

Ich fand die folgenden Hilfen bei diesem Problem:

ipmitool bmc info

Dies scheint IPMI aufzuwecken und beendet dann die Verwendung von 100% eines Kerns.

Ich fand auch Folgendes hilfreich:

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

Auch in der Vergangenheit konnte ich auf einigen Servern die 100% ige CPU-Auslastung beheben, indem ich:

ipmitool lan print

und

ipmitool bmc reset cold

Nach meiner jüngsten Erfahrung würden die oben genannten Optionen nur dazu führen ipmitool, dass ich nicht mehr reagiere und dort sitze, was mich dazu veranlasst, es zu Ctrltun C.

Hoffentlich hilft das jemandem.

TheLinuxBug
quelle
Gibt es ein Problem zu tun echo 1 > /sys/module/ipmi_si/parameters/kipmid_max_busy_us?
Qian Chen
0

Ich fand dies unter CentOS 7 und versuchte herauszufinden, was es aufnahm.

Für mich war es Supermicros "ipmicfg", das von einem Skript ausgeführt wurde, das ich geschrieben habe oder so. Ich habe es nur gekillt und die Nutzung von kipmi0 ist weg.

Locane
quelle