Geralmente, os DIMMs ficam danificados em nossos servidores com os seguintes erros no syslog:
7 de maio 09:15:31 kernel nolcgi303: EDAC k8 MC0: erro geral de barramento: processador participante (resposta do nó local), tipo de transação de memória de tempo limite (sem tempo limite) (leitura genérica), mem ou E / S (acesso a mem) , nível de cache (genérico) 7 de maio 09:15:31 kernel nolcgi303: MC0: página 0xa0 do CE, deslocamento 0x40, grão 8, síndrome 0xb50d, linha 2, canal 0, rótulo "": k8_edac 7 de maio 09:15:31 kernel nolcgi303: MC0: CE - nenhuma informação disponível: k8_edac Error Overflow set 7 de maio 09:15:31 kernel nolcgi303: EDAC k8 MC0: código de erro estendido: erro ECC chipkill x4
Podemos usar o CD do HP SmartStart para determinar qual DIMM tem o erro, mas isso exige que o servidor fique fora de produção. Existe uma maneira astuta de descobrir qual falha do DIMM enquanto o servidor está ativo? Todos os nossos servidores são hardware HP executando o RHEL 5.
Respostas:
Além de usar os códigos EDAC, você pode usar apenas os utilitários HP da CLI para determinar isso enquanto a máquina estiver online. As versões cli são muito mais leves que as baseadas na Web e não exigem que você abra portas ou tenha um daemon em execução constante.
O hpasmcli fornecerá o número do cartucho e do módulo dos módulos com falha. Um pouco mais rápido do que analisar o EDAC.
Exemplo:
O status será alterado para os módulos com falha.
fonte
MC0, linha 2 e canal 0 são significativos. Tente substituir o DIMMA1 na CPU0.
A título de exemplo, eu tive que identificar um DIMM ruim em um servidor Linux com 16 slots DIMM totalmente preenchidos e duas CPUs. Estes são os erros que vi no console:
O DIMM ruim no meu servidor era DIMMA0 na CPU1.
EDAC significa Detecção e correção de erros e está documentado em http://www.kernel.org/doc/Documentation/edac.txt e /usr/share/doc/kernel-doc-2.6*/Documentation/drivers/edac/edac .txt no meu sistema (RHEL5). CE significa "erros corrigíveis" e, como indica a documentação, "CEs fornecem indicações precoces de que um DIMM está começando a falhar".
Voltando aos erros EDAC acima, vi no console do meu servidor, MC1 (Memory Controller 1) significa CPU1, a linha 1 é referida como csrow1 (Chip-Select Row 1) na documentação do Linux EDAC e o canal 0 significa o canal de memória 0 Verifiquei o gráfico em http://www.kernel.org/doc/Documentation/edac.txt para ver se o csrow1 e o canal 0 correspondem ao DIMM_A0 (DIMMA0 no meu sistema):
(Como outro exemplo, se eu tivesse visto erros no MC0, csrow4 e Canal 1, eu teria substituído o DIMMB2 na CPU0.)
Obviamente, existem dois slots DIMM chamados DIMMA0 no meu servidor (um para cada CPU), mas novamente o erro MC1 corresponde à CPU1, listada em "Localizador de Banco" na saída do dmidecode:
(Na minha estação de trabalho, o dmidecode realmente mostra o número da peça e o número de série dos meus DIMMs, o que é muito útil.)
Além de examinar os erros no console e nos logs, você também pode ver os erros por MC / CPU, linha / csrow e canal examinando / sys / devices / system / edac. No meu caso, os erros foram apenas no canal MC1, csrow1, 0:
Espero que este exemplo seja útil para qualquer pessoa que tente identificar um DIMM ruim com base nos erros do EDAC. Para obter mais informações, recomendo a leitura de toda a documentação do Linux EDAC em http://www.kernel.org/doc/Documentation/edac.txt
fonte
MC0: UE row 0, channel-a= 2 channel-b= 3
.