In CentOS 7 oder Red Hat Enterprise Linux (RHEL) 7 kann ein Prozess namens „kipmi0“ anzeigen, dass er einen ungewöhnlich hohen Prozentsatz der CPU-Rechenleistung nutzt, z. 99,7 %, 99,8 %, 99,9 % oder sogar 100 %, obwohl der kipmi0-Prozess 0,0 % Speicher verwendet und den Lastdurchschnitt nicht wirklich erhöht, der weiterhin auf einem niedrigen Wert nahe 1 oder 2 schwebt (vorausgesetzt, der Server ist nicht unter Last Ladezeit).
Das problematische kipmi0 kann durch Ausführen des Befehls „top“ angezeigt werden. Der kipmi0-Prozess bleibt für die gesamte Lebensdauer des Servers bei 100 %.
Manchmal kann ein Systemneustart dazu führen, dass kipmi0 für einen kurzen Moment verschwindet, aber bald erwacht es mit 100% CPU-Auslastung wieder zum Leben. Um die Sache noch schlimmer zu machen, kann der kipmi0-Prozess nicht beendet und beendet werden, wobei der Prozess weiterläuft und bleibt.
Laut IBM Support kann der Prozess kipmi0 unter Linux eine erhöhte CPU-Auslastung aufweisen. Die Auslastung kann auf 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.
Die vorgeschlagene Lösung wird überraschenderweise nicht umgesetzt. Kein Fix erforderlich und eine erhöhte CPU-Auslastung sollten ignoriert werden, da dies keine Auswirkungen auf die tatsächliche Systemleistung hat, da kipmiN-Kernel-Hilfsthreads mit niedriger Priorität ausgeführt werden. Andere Problemumgehungen umfassen das Zurücksetzen des BMC oder das Neustarten des Systems, wenn ein IPMI-Gerät verwendet wird (was das Problem nicht löst), oder das Stoppen des IPMI-Dienstes, wenn kein IPMI-Gerät verwendet wird (wobei der IPMI-Dienst nicht einmal gestartet werden sollte, wenn es nicht verwendet wird). .
Red Hat Enterprise Linux (RHEL) / CentOS 6 und Red Hat Enterprise Linux / CentOS 7 haben standardmäßig Linux IPMI ipmi_si-Treiber und die zugehörigen Handles und Module in den Kernel integriert. RedHat erklärt, warum dieses kipmi0 eine hohe CPU-Last erzeugt:
kipmi0 ist ein Kernel-Hilfsprozess/Thread, der an der Handhabung von IPMI-Schnittstellen beteiligt ist. Innerhalb von IPMI gibt es mehrere Standardklassen von Schnittstellen. Einige dieser Klassen, wie KCS (Keyboard Control Style) und SMIC (System Management Interface Chip), verwenden keine Interrupt-Anforderungen (IRQs), um Änderungen zu signalisieren, und erfordern daher eine Abfrage, um Befehlsergebnisse zu erhalten. Die Kernel-Hilfsthreads von kipmiN führen diese Abfrage durch. Daher ist es normal, dass diese Threads viel CPU-Zeit verbrauchen, während ein IPMI-Vorgang ausgeführt wird.
In diesem Fall liegt ein Problem in der Interaktion zwischen dem Treiber und der Hardware/Firmware vor, das den Treiber glauben lässt, dass noch ein Vorgang ausgeführt wird, wodurch die hohe CPU-Last anhält, bis das System neu gestartet wird.
Um das Problem zu lösen, dass kipmiN-Hilfsthreads auftreten, gibt es zahlreiche Problemumgehungen, z. B. das Auskommentieren von ipmi-si und ipmisensors in /etc/sysconfig/lm_sensors. Wenn Sie sicher sind, dass der IPMI-Dienst auf dem Server nicht erforderlich ist oder keine IPMI-Geräte auf dem Computer installiert sind, können Sie den Kernel-Dienst für IPMI deaktivieren.
Um den Kernel-Dienst für IPMI vollständig zu deaktivieren, können wir die IPMI-bezogenen Module im Dienstprogramm modprobe auf die schwarze Liste setzen, um zu verhindern, dass das System IPMI-Kernel-Module verwendet. Bearbeiten Sie dazu die blacklist.conf in /etc/modprobe.d/ Verzeichnis und fügen Sie die folgende Zeile als root hinzu:
blacklist ipmi_si blacklist ipmi_ssif blacklist ipmi_devintf blacklist ipmi_msghandler
Die obige Liste enthält die meisten wichtigen IPMI-Module, die beim Booten gestartet werden, aber nicht alle werden vom System gestartet. Wenn einer von ihnen nicht auf dem System vorhanden ist, kann die Zeile ausgeschlossen werden.