Temos o CentOS 6.4 e kipmi0
está mostrando como 99,8% da CPU e 0,0% de memória e carga média é de 1,00. O que devemos fazer para corrigir isso?
lshw
e dmidecode
seria minhas próximas áreas para examinar.
Temos o CentOS 6.4 e kipmi0
está mostrando como 99,8% da CPU e 0,0% de memória e carga média é de 1,00. O que devemos fazer para corrigir isso?
lshw
e dmidecode
seria minhas próximas áreas para examinar.
Respostas:
Os outros sistemas são idênticos a esse sistema? Você terá que determinar que são. Tem que haver algo fundamentalmente diferente entre eles. Firmware? Mesmas versões RPM?
Você pode usar ferramentas como lshw
, dmidecode
, e olhando para o dmesg
log em busca de pistas sobre o que é diferente e que é a causa raiz.
Eu obteria uma boa linha de base dos RPMs instalados executando este comando em um dos sistemas que não está apresentando esse problema e no que está e compararia as listas de pacotes para garantir que eles estejam nas mesmas versões.
# machine #1
$ rpm -aq | sort -rn > machine1_rpms.txt
# machine #2
$ rpm -aq | sort -rn > machine2_rpms.txt
Em seguida, pegue os arquivos na mesma máquina e faça um sdiff dos 2 arquivos:
sdiff machine1_rpms.txt machine2_rpms.txt
O site da IBM tinha esta nota técnica intitulada: Kipmi0 pode mostrar aumento da utilização da CPU no Linux , em relação a esse problema. De acordo com esse problema, você pode essencialmente ignorar o problema.
Descrição da questão
O processo kipmi0 pode mostrar uma maior utilização da CPU no Linux. A utilização pode aumentar até 100% quando o dispositivo IPMI (Intelligent Platform Management Interface), como um BMC (Controlador de gerenciamento de placa base) ou IMM (Controlador de gerenciamento integrado) está ocupado ou não responde.
Consertar
Nenhuma correção é necessária. Você deve ignorar o aumento da utilização da CPU, pois não afeta o desempenho real do sistema.
Gambiarra
Se não estiver usando um dispositivo IPMI, pare o serviço IPMI emitindo o seguinte comando:
parada de ipmi de serviço
Eu encontrei este post no blog de alguém simplesmente intitulado: kipmi0 problem . Esse problema parecia idêntico ao seu. O problema foi atribuído a um problema com dois módulos do kernel que estavam sendo carregados como parte do lm_sensors
pacote.
Estes foram os 2 módulos do kernel:
Gambiarra
Você pode removê-los manualmente com os seguintes comandos:
rmmod ipmi_msghandler
rmmod ipmi_si
Para tornar essa correção permanente, você precisará desativar o carregamento desses módulos específicos do kernel em um dos lm_sensors
arquivos de configuração, comentando-os da seguinte forma:
# /etc/sysconfig/lm_sensors
# MODULE_0=ipmi-si
# MODULE_1=ipmisensors
# MODULE_2=coretemp
Reinicie lm_sensors
após fazer essas alterações:
/etc/init.d/lm_sensors
sdiff machine1_rpms.txt machine2_rpms.txt | grep "|"
eliminará todas as diferenças entre os 2 arquivos .txt. Existem outras maneiras de fazer isso, mas essa é uma maneira.
De acordo com o documento IPMI :
esse encadeamento pode usar muita CPU, dependendo do desempenho da interface. Isso pode desperdiçar muita CPU e causar vários problemas na detecção da CPU ociosa e no uso de energia extra. Para evitar isso, o kipmid_max_busy_us define a quantidade máxima de tempo, em microssegundos, que o kipmid irá girar antes de dormir para um carrapato. Esse valor estabelece um equilíbrio entre desempenho e desperdício de CPU e precisa ser ajustado às suas necessidades. Talvez, algum dia, o ajuste automático seja adicionado, mas isso não é uma coisa simples e até o ajuste automático precisaria ser ajustado ao desempenho desejado do usuário.
Portanto, podemos executar este comando para definir o parâmetro kipmid_max_busy_us:
echo 100 > /sys/module/ipmi_si/parameters/kipmid_max_busy_us
Em nosso sistema, após definir esse parâmetro, a CPU do kipmi0 caiu para 15%.
Você pode tentar isso.
Para tornar as alterações persistentes, você pode configurar as opções para o módulo do kernel ipmi_si.
Crie um arquivo /etc/modprobe.d/
, ou seja /etc/modprobe.d/ipmi.conf
, e adicione o seguinte conteúdo:
Agora, toda vez que o módulo do kernel ipmi_si é carregado no kernel, o parâmetro deve ser definido automaticamente e corretamente.
# Prevent kipmi0 from consuming 100% CPU
options ipmi_si kipmid_max_busy_us=100
O kipmi0 pode ser desabilitado inteiramente no CentOS 6 adicionando ipmi_si.force_kipmid=0
como um parâmetro do kernel
Teste na tela de inicialização do GRUB destacando o kernel que você deseja inicializar, pressione 'a' para modificar os parâmetros e anexando ipmi_si.force_kipmid=0
Torne permanente anexando ipmi_si.force_kipmid=0
às linhas relevantes do kernel em/boot/grub/grub.conf
NOTA: Nas distros que possuem ipmi_si como um módulo separado do kernel, é mais apropriado usar um arquivo modprobe.d conf. No CentOS, o ipmi_si é incorporado à imagem do kernel, portanto, as configurações do modprobe não funcionam.
Encontrei as seguintes ajudas com esse problema:
ipmitool bmc info
Isso parece ativar o IPMI e então deixa de usar 100% de um núcleo.
Eu também achei o seguinte útil:
echo 100 > /sys/module/ipmi_si/parameters/kipmid_max_busy_us
Também no passado, em alguns servidores, consegui resolver o uso de 100% da CPU:
ipmitool lan print
e
ipmitool bmc reset cold
mas na minha experiência mais recente opções acima seria justa causa ipmitool
para ser não-responsivos e sentar-se lá, fazendo-me Ctrl+ C-lo.
Espero que isso ajude alguém.
echo 1 > /sys/module/ipmi_si/parameters/kipmid_max_busy_us
?