Como interpreto mensagens MCE?

10

Eu notei um monte de erros que recentemente apareceram em /var/log/messages em um de nossos servidores (abaixo). No entanto, o cliente mce parece ter menos certeza da origem do erro do que as entradas decodificadas no syslog. Existe algum tipo de chave a ser usada para interpretar a saída do MCE?

Nov 12 04:19:19 areion kernel: [14698753.176035] Machine check events logged
Nov 12 04:19:19 areion mcelog: HARDWARE ERROR. This is *NOT* a software problem!
Nov 12 04:19:19 areion mcelog: Please contact your hardware vendor
Nov 12 04:19:19 areion mcelog: MCE 0
Nov 12 04:19:19 areion mcelog: CPU 0 BANK 8
Nov 12 04:19:19 areion mcelog: MISC 640738dd0009159c ADDR 96236c6c0
Nov 12 04:19:19 areion mcelog: TIME 1352711959 Mon Nov 12 04:19:19 2012
Nov 12 04:19:19 areion mcelog: MCG status:
Nov 12 04:19:19 areion mcelog: MCi status:
Nov 12 04:19:19 areion mcelog: MCi_MISC register valid
Nov 12 04:19:19 areion mcelog: MCi_ADDR register valid
Nov 12 04:19:19 areion mcelog: MCA: MEMORY CONTROLLER RD_CHANNELunspecified_ERR
Nov 12 04:19:19 areion mcelog: Transaction: Memory read error
Nov 12 04:19:19 areion mcelog: STATUS 8c0000400001009f MCGSTATUS 0
Nov 12 04:19:19 areion mcelog: MCGCAP 1c09 APICID 20 SOCKETID 1
Nov 12 04:19:19 areion mcelog: CPUID Vendor Intel Family 6 Model 44

Todos os erros parecem estar conectados ao mesmo banco de memória:

areion:~# awk -F'mcelog:' '/mcelog:.*BANK/{ print $2; }' < /var/log/messages |uniq
 CPU 0 BANK 8 

Eu tenho o daemon mcelog rodando, e quando eu checo por informação de erro, ele não parece saber de onde os erros estão vindo. Só que eles estão associados com CPU0 (só temos uma CPU nessa caixa):

Memory errors
SOCKET 1 CHANNEL any DIMM any
corrected memory errors:
        77 total
        77 in 24h
uncorrected memory errors:
        0 total
        0 in 24h
Per page corrected memory statistics:
359ffc000: total 2 2 in 24h online

3b93cc000: total 2 2 in 24h online

3ce45c000: total 2 2 in 24h online

96236c000: total 20 20 in 24h online triggered

96545c000: total 9 9 in 24h online

96a82c000: total 9 9 in 24h online

96a8ec000: total 1 1 in 24h online

96fb6c000: total 15 15 in 24h online triggered

9c2edc000: total 15 15 in 24h online triggered

9c5eac000: total 1 1 in 24h online

9c6a1c000: total 1 1 in 24h online

Não está claro como interpretar essa informação. Por um lado, o cliente mce não indica canal ou DIMM, mas a mensagem decodificada indica que os erros ocorrem no DIMM 8. dmesg parece indicar que apenas 42 mensagens foram registradas:

[14698753.176035] Machine check events logged
[14698753.629174] Machine check events logged
[14698815.338595] __ratelimit: 38 callbacks suppressed
[14698815.338628] Machine check events logged
[14698816.020797] Machine check events logged

Parece que estou recebendo mensagens confusas, o que me faz pensar em quais suposições fazer com base nas informações informadas das várias fontes.

Informações diversas:

areion:~# grep 'model name' /proc/cpuinfo |uniq
model name      : Intel(R) Xeon(R) CPU           X5670  @ 2.93GHz

areion:~# apt-cache policy mcelog |grep Installed
  Installed: 1.0~pre3-3

areion:~# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 6.0.6 (squeeze)
Release:        6.0.6
Codename:       squeeze
    
por vezult 12.11.2012 / 18:15

1 resposta

2

Você pode tentar substituir o DIMM em questão (CPU 0, SOCKET 8) e ver se as mensagens MCE continuam sendo geradas.

O pacote mcelog vem configurado com alguns limites padrão para vários eventos do MCE que ocorrem ao longo do tempo. Confira /etc/mcelog/mcelog.conf para detalhes. Para erros de página de memória, o limite é de 10 eventos em 24 horas. (Eu não tenho certeza de onde esse número vem, mas é provavelmente um ponto de referência razoável). Sua postagem menciona 77 eventos corrigíveis durante 24 horas em um monte de páginas, então é bem provável que o DIMM tenha desenvolvido um problema que pode ou não se transformar em algo mais sério.

Eu não ficaria muito chateado por receber informações inconsistentes de diferentes fontes. Em geral, descobri que qualquer coisa no nível do firmware é bastante específica da plataforma (ou seja, específica para esse modelo de hardware específico). Minha regra básica para problemas relacionados a firmware é que as ferramentas do fornecedor geralmente são as mais precisas, mas as menos utilizáveis. As ferramentas de código aberto mais genéricas são mais fáceis de trabalhar, mas podem não fornecer informações suficientes para mostrar exatamente o que está acontecendo.

    
por 11.01.2013 / 02:26

Tags