GNU/Linux >> Linux Esercitazione >  >> Linux

Come ricevo la notifica degli errori ECC in Linux?

Soluzione 1:

mcelog monitorerà il controller di memoria e riporterà gli eventi di errore di memoria a syslog e in alcune configurazioni può offline pagine di memoria danneggiate. Questo è, ovviamente, in aggiunta al suo normale utilizzo per monitorare le eccezioni del controllo della macchina e una varietà di altri errori hardware.

La maggior parte delle distribuzioni Linux ha un servizio configurato per eseguirlo come demone, ad es. per EL 6:

chkconfig mcelog on
service mcelog start

Soluzione 2:

Il kernel Linux supporta le funzionalità di rilevamento e correzione degli errori (EDAC) di alcuni chipset. Su un sistema supportato con ECC lo stato del tuo controller di memoria è accessibile tramite sysfs:

/sys/devices/system/edac/mc

L'albero delle directory sotto quelle posizioni dovrebbe corrispondere al tuo hardware, ad esempio:

/sys/devices/system/edac/mc/mc0/csrow2/power
/sys/devices/system/edac/mc/mc0/csrow0/power
/sys/devices/system/edac/mc/mc0/dimm2/power
/sys/devices/system/edac/mc/mc0/dimm0/power
/sys/devices/system/edac/mc/mc1/power
...

A seconda del tuo hardware, potresti dover caricare esplicitamente il driver edac corretto, vedi:

find /lib/modules/$(uname -r) -name '*edac*'

Il edac-utils fornisce un'interfaccia a riga di comando e una libreria per l'accesso a tali dati, ad esempio:

edac-util -rfull          
mc0:csrow0:mc#0memory#0:CE:0
mc0:csrow2:mc#0memory#2:CE:0
mc0:noinfo:all:UE:0
mc0:noinfo:all:CE:0
mc1:noinfo:all:UE:0
mc1:noinfo:all:CE:0

Puoi impostare una sorta di cron-job che periodicamente chiama eac-util e inserisce i risultati nel tuo sistema di monitoraggio, dove puoi quindi configurare alcune notifiche.

Inoltre, eseguendo mcelog è generalmente una buona idea. Dipende dal sistema, ma è probabile che anche gli errori ECC non correggibili/correggibili vengano segnalati come eccezioni di controllo macchina (MCE). Voglio dire, anche brevi periodi di throttling della CPU a causa di temperature più elevate vengono segnalati come MCE.

Soluzione 3:

Questo dipende dall'hardware del tuo server. Un sistema whitebox o Supermicro lo gestirà in modo diverso rispetto a Dell, HP o IBM...

Una delle funzionalità a valore aggiunto dei server di fascia alta è che esiste un livello di integrazione hardware/sistema operativo. I server migliori segnaleranno ciò che stai cercando come parte degli agenti di gestione e/o della soluzione di gestione fuori banda (ILO, DRAC, IPMI).

Dovresti utilizzare gli strumenti nativi della tua piattaforma hardware.

Estratto da un server HP ProLiant che esegue Linux e gli agenti di gestione HP:

Trap-ID=6056
ECC Memory Correctable Errors  detected.

e

Trap-ID=6052
Advanced ECC Memory  Engaged

o più grave

Trap-ID=6029
A correctable memory log entry indicates a memory module needs to be
replaced.

o il peggio... Ignorare un errore per 6 giorni finché il server non va in crash a causa di RAM difettosa

0004 Repaired       22:21  12/01/2008 22:21  12/01/2008 0001
LOG: Corrected Memory Error threshold exceeded (Slot 1, Memory Module 1)

0007 Repaired       02:58  12/07/2008 02:58  12/07/2008 0001
LOG: POST Error: 201-Memory Error Single-bit error occured during 
memory initialization, 
Board 1, DIMM 1. Bank containing DIMM(s) has been disabled.

0008 Repaired       19:31  12/08/2009 19:31  12/08/2009 0001
LOG: ASR Detected by System ROM

Questi sono stati registrati, oltre a trap SNMP ed e-mail inviate.

Genericamente, vedrai le eccezioni del controllo della macchina nel ring buffer del kernel, quindi puoi controllare dmesg o eseguire mcelog. Nelle mie esperienze con l'attrezzatura Supermicro senza IPMI, ciò non ha rilevato tutto e ho ancora avuto errori di RAM che scivolavano attraverso le fessure e causavano interruzioni. Sfortunatamente, ciò ha portato a politiche di burn-in della RAM arcaiche prima dell'implementazione del sistema.

Soluzione 4:

Il rasdaemon il pacchetto è stato creato in sostituzione di edac-tools e i kernel più recenti non supportano nemmeno edac-tools o mcelog .

Un aggiornamento ai driver del kernel Linux EDAC ha cambiato il modo in cui i contatori degli errori di memoria sono stati gestiti nello spazio utente, quindi edac-tools e mcelog sono effettivamente deprecati.


Linux
  1. Come cancellare la cache di memoria in Linux

  2. Come ottenere la dimensione della directory in Linux

  3. Come elencare i processi collegati a un segmento di memoria condivisa in Linux?

  4. Come ottenere il nome host dall'IP (Linux)?

  5. In che modo l'errore di memoria a bit singolo influirà su Linux?

Come cancellare la memoria di scambio in Linux

Come disabilitare permanentemente lo scambio in Linux

Come ottenere il tuo indirizzo IP su Linux

Come funziona la memoria di scambio in Linux?

Come iniziare con Arch Linux

Come ottenere un elenco di collegamenti simbolici su Linux