Abbiamo CentOS 6.4 e kipmi0
viene visualizzato come 99,8% cpu e 0,0% di memoria e la media del carico è 1,00. Cosa dovremmo fare per correggere questo?
lshw
e dmidecode
sarebbero le mie prossime aree da esaminare.
Abbiamo CentOS 6.4 e kipmi0
viene visualizzato come 99,8% cpu e 0,0% di memoria e la media del carico è 1,00. Cosa dovremmo fare per correggere questo?
lshw
e dmidecode
sarebbero le mie prossime aree da esaminare.
Risposte:
Gli altri sistemi sono identici a questo sistema? Dovrai determinare che lo sono. Deve esserci qualcosa di sostanzialmente diverso tra loro. Firmware? Stesse versioni RPM?
Puoi usare strumenti come lshw
, dmidecode
e guardare il dmesg
registro per trovare indizi su ciò che è diverso e qual è la causa principale.
Otterrei una buona linea di base degli RPM installati eseguendo questo comando su uno dei sistemi che non presentano questo problema e quello che è e confronterei gli elenchi dei pacchetti per assicurarmi che siano tutti nelle stesse versioni.
# machine #1
$ rpm -aq | sort -rn > machine1_rpms.txt
# machine #2
$ rpm -aq | sort -rn > machine2_rpms.txt
Quindi ottenere i file sullo stesso computer ed eseguire uno sdiff dei 2 file:
sdiff machine1_rpms.txt machine2_rpms.txt
Il sito Web IBM aveva questo technote intitolato: Kipmi0 può mostrare un maggiore utilizzo della CPU su Linux , in merito a questo problema. Secondo questo problema, puoi essenzialmente ignorare il problema.
descrizione del problema
Il processo kipmi0 potrebbe mostrare un maggiore utilizzo della CPU in Linux. L'utilizzo può aumentare fino al 100% quando il dispositivo IPMI (Intelligent Platform Management Interface), come un BMC (Baseboard Management Controller) o IMM (Integrated Management Controller) è occupato o non risponde.
fix
Nessuna correzione richiesta. È necessario ignorare un maggiore utilizzo della CPU in quanto non ha alcun impatto sulle prestazioni effettive del sistema.
Work-around
Se non si utilizza un dispositivo IPMI, interrompere il servizio IPMI emettendo il comando seguente:
servizio ipmi stop
Ho trovato questo post sul blog di qualcuno semplicemente intitolato: problema kipmi0 . Questo problema sembrava identico al tuo. Il problema è stato ricondotto a un problema con 2 moduli del kernel che venivano caricati come parte del lm_sensors
pacchetto.
Questi erano i 2 moduli del kernel:
Work-around
Puoi rimuoverli manualmente con i seguenti comandi:
rmmod ipmi_msghandler
rmmod ipmi_si
Per rendere permanente questa correzione, dovrai disabilitare il caricamento di questi particolari moduli del kernel all'interno di uno dei lm_sensors
file di configurazione, commentandoli così:
# /etc/sysconfig/lm_sensors
# MODULE_0=ipmi-si
# MODULE_1=ipmisensors
# MODULE_2=coretemp
Riavvia lm_sensors
dopo aver apportato queste modifiche:
/etc/init.d/lm_sensors
sdiff machine1_rpms.txt machine2_rpms.txt | grep "|"
eliminerò tutte le differenze tra i 2 file .txt. Ci sono altri modi per farlo, ma è un modo.
Secondo il documento IPMI :
questo thread può usare molta CPU a seconda delle prestazioni dell'interfaccia. Ciò può sprecare molta CPU e causare vari problemi con il rilevamento della CPU inattiva e l'utilizzo di energia aggiuntiva. Per evitarlo, kipmid_max_busy_us imposta il tempo massimo, in microsecondi, in cui kipmid girerà prima di dormire per un tick. Questo valore stabilisce un equilibrio tra prestazioni e spreco di CPU e deve essere adattato alle tue esigenze. Forse, un giorno, verrà aggiunta l'auto-tuning, ma non è una cosa semplice e anche l'auto-tuning dovrebbe essere sintonizzata sulla performance desiderata dell'utente.
Quindi, possiamo eseguire questo comando per impostare il parametro kipmid_max_busy_us:
echo 100 > /sys/module/ipmi_si/parameters/kipmid_max_busy_us
Nel nostro sistema, dopo aver impostato questo parametro, la cpu di kipmi0 è diminuita al 15%.
Puoi provare questo.
Per rendere persistenti le modifiche è possibile configurare le opzioni per il modulo del kernel ipmi_si.
Creare un file /etc/modprobe.d/
, ad esempio /etc/modprobe.d/ipmi.conf
, e aggiungere il seguente contenuto:
Ora ogni volta che il modulo del kernel ipmi_si viene caricato nel kernel, il parametro dovrebbe essere impostato automaticamente e correttamente.
# Prevent kipmi0 from consuming 100% CPU
options ipmi_si kipmid_max_busy_us=100
kipmi0 può essere disabilitato su CentOS 6 interamente aggiungendo ipmi_si.force_kipmid=0
come parametro del kernel
Provare nella schermata di avvio di GRUB evidenziando il kernel che si desidera avviare, premere 'a' per modificare i parametri e aggiungere ipmi_si.force_kipmid=0
Rendi permanente aggiungendo ipmi_si.force_kipmid=0
le relative linee del kernel in/boot/grub/grub.conf
NOTA: nelle distribuzioni che hanno ipmi_si come modulo kernel separato, è più appropriato usare un file conf modprobe.d. In CentOS ipmi_si è integrato nell'immagine del kernel, quindi le configurazioni di modprobe non funzionano.
Ho trovato i seguenti aiuti con questo problema:
ipmitool bmc info
Questo sembra riattivare IPMI e quindi smette di usare il 100% di un core.
Ho anche trovato utile quanto segue:
echo 100 > /sys/module/ipmi_si/parameters/kipmid_max_busy_us
Anche in passato sono stato in grado su alcuni server di risolvere l'utilizzo della CPU al 100%:
ipmitool lan print
e
ipmitool bmc reset cold
ma nella mia esperienza più recente le opzioni sopra menzionate potrebbero ipmitool
non essere reattive e rimanere lì, causandomi Ctrl+ C.
Spero che questo aiuti qualcuno.
echo 1 > /sys/module/ipmi_si/parameters/kipmid_max_busy_us
?