Tenemos CentOS 6.4 y kipmi0
se muestra como 99.8% de CPU y 0.0% de memoria y carga promedio es 1.00. ¿Qué debemos hacer para rectificar esto?
lshw
y dmidecode
serían mis próximas áreas para examinar.
Tenemos CentOS 6.4 y kipmi0
se muestra como 99.8% de CPU y 0.0% de memoria y carga promedio es 1.00. ¿Qué debemos hacer para rectificar esto?
lshw
y dmidecode
serían mis próximas áreas para examinar.
Respuestas:
¿Los otros sistemas son idénticos a este sistema? Tendrás que determinar que lo son. Tiene que haber algo que sea fundamentalmente diferente entre ellos. Firmware? ¿Las mismas versiones de RPM?
Puede usar herramientas como lshw
, dmidecode
y buscar en el dmesg
registro pistas sobre qué es diferente y cuál es la causa raíz.
Obtendría una buena línea de base de los RPM instalados al ejecutar este comando en uno de los sistemas que no presenta este problema y el que sí lo es, y comparar las listas de paquetes para asegurarme de que todos tengan las mismas versiones.
# machine #1
$ rpm -aq | sort -rn > machine1_rpms.txt
# machine #2
$ rpm -aq | sort -rn > machine2_rpms.txt
Luego obtenga los archivos en la misma máquina y haga un sdiff de los 2 archivos:
sdiff machine1_rpms.txt machine2_rpms.txt
El sitio web de IBM tenía esta nota técnica titulada: Kipmi0 puede mostrar una mayor utilización de la CPU en Linux , con respecto a este problema. De acuerdo con este problema, esencialmente puede ignorar el problema.
descripción del problema
El proceso kipmi0 puede mostrar una mayor utilización de la CPU en Linux. La utilización puede aumentar hasta el 100% cuando el dispositivo IPMI (Interfaz de administración de plataforma inteligente), como un BMC (Controlador de administración de placa base) o IMM (Controlador de administración integrado) está ocupado o no responde.
Reparar
No se requiere arreglo. Debe ignorar la mayor utilización de la CPU, ya que no tiene ningún impacto en el rendimiento real del sistema.
Solución alterna
Si no utiliza un dispositivo IPMI, detenga el servicio IPMI emitiendo el siguiente comando:
servicio ipmi stop
Encontré esta publicación en el blog de alguien simplemente titulada: problema kipmi0 . Este problema sonaba idéntico al tuyo. El problema se remonta a un problema con 2 módulos del núcleo que se estaban cargando como parte del lm_sensors
paquete.
Estos fueron los 2 módulos del núcleo:
Solución alterna
Puede eliminarlos manualmente con los siguientes comandos:
rmmod ipmi_msghandler
rmmod ipmi_si
Para que esta solución sea permanente, necesitará deshabilitar la carga de estos módulos del kernel en particular dentro de uno de los lm_sensors
archivos de configuración, al comentarlos así:
# /etc/sysconfig/lm_sensors
# MODULE_0=ipmi-si
# MODULE_1=ipmisensors
# MODULE_2=coretemp
Reinicie lm_sensors
después de hacer estos cambios:
/etc/init.d/lm_sensors
sdiff machine1_rpms.txt machine2_rpms.txt | grep "|"
sacará todas las diferencias b / w de los 2 archivos .txt. Hay otras formas de hacerlo, pero esa es una forma.
Según el documento de IPMI :
este hilo puede usar mucha CPU dependiendo del rendimiento de la interfaz. Esto puede desperdiciar una gran cantidad de CPU y causar varios problemas al detectar la CPU inactiva y usar energía adicional. Para evitar esto, kipmid_max_busy_us establece la cantidad máxima de tiempo, en microsegundos, que kipmid girará antes de dormir por un tic. Este valor establece un equilibrio entre el rendimiento y el desperdicio de CPU y debe ajustarse a sus necesidades. Tal vez, algún día, se agregará el autoajuste, pero eso no es algo simple e incluso el autoajuste necesitaría ajustarse al rendimiento deseado del usuario.
Entonces, podemos ejecutar este comando para establecer el parámetro kipmid_max_busy_us:
echo 100 > /sys/module/ipmi_si/parameters/kipmid_max_busy_us
En nuestro sistema, después de configurar este parámetro, la CPU de kipmi0 disminuyó al 15%.
Puedes probar esto.
Para que los cambios sean persistentes, puede configurar las opciones para el módulo del kernel ipmi_si.
Cree un archivo /etc/modprobe.d/
, es decir /etc/modprobe.d/ipmi.conf
, y agregue el siguiente contenido:
Ahora, cada vez que el módulo de kernel ipmi_si se carga en el kernel, el parámetro debe establecerse automática y correctamente.
# Prevent kipmi0 from consuming 100% CPU
options ipmi_si kipmid_max_busy_us=100
kipmi0 se puede deshabilitar en CentOS 6 por completo al agregarlo ipmi_si.force_kipmid=0
como parámetro del núcleo
Pruebe en la pantalla de inicio de GRUB resaltando el núcleo que desea iniciar, presione 'a' para modificar los parámetros y agregar ipmi_si.force_kipmid=0
Haga permanente agregando ipmi_si.force_kipmid=0
a las líneas de kernel relevantes en/boot/grub/grub.conf
NOTA: En las distribuciones que tienen ipmi_si como un módulo de kernel separado, es más apropiado usar un archivo modprobe.d conf. En CentOS, ipmi_si está integrado en la imagen del núcleo, por lo que las configuraciones de modprobe no funcionan.
CentOS 6 tiene un controlador ipmi compilado en el núcleo. Si no necesita soporte para ipmi, simplemente desactívelo grub.conf
ipmi_si.tryacpi=0 ipmi_si.trydmi=0 ipmi_si.trydefaults=0
Encontré las siguientes ayudas con este problema:
ipmitool bmc info
Esto parece despertar IPMI y luego deja de usar el 100% de un núcleo.
También encontré lo siguiente útil:
echo 100 > /sys/module/ipmi_si/parameters/kipmid_max_busy_us
También en el pasado, en algunos servidores pude resolver el uso del 100% de la CPU al:
ipmitool lan print
y
ipmitool bmc reset cold
pero en mi experiencia más reciente, las opciones anteriores simplemente provocarían ipmitool
que no respondieran y se quedaran allí, lo que haría que Ctrl+ Clo hiciera .
Esperemos que esto ayude a alguien.
echo 1 > /sys/module/ipmi_si/parameters/kipmid_max_busy_us
?