GNU/Linux >> Tutoriels Linux >  >> Linux

Comment puis-je être informé des erreurs ECC sous Linux ?

Solution 1 :

mcelog surveillera le contrôleur de mémoire et signalera les événements d'erreur de mémoire à syslog et, dans certaines configurations, peut déconnecter les pages de mémoire défectueuses. Cela s'ajoute bien sûr à son utilisation habituelle pour surveiller les exceptions de vérification de la machine et diverses autres erreurs matérielles.

La plupart des distributions Linux ont un service configuré pour l'exécuter en tant que démon, par ex. pour EL 6 :

chkconfig mcelog on
service mcelog start

Solution 2 :

Le noyau Linux prend en charge les fonctions de détection et de correction d'erreurs (EDAC) de certains chipsets. Sur un système pris en charge avec ECC, l'état de votre contrôleur de mémoire est accessible via sysfs :

/sys/devices/system/edac/mc

L'arborescence des répertoires sous ces emplacements doit correspondre à votre matériel, par exemple :

/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
...

Selon votre matériel, vous devrez peut-être charger explicitement le bon pilote edac, cf. :

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

Le edac-utils package fournit une interface de ligne de commande et une bibliothèque pour accéder à ces données, par exemple :

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

Vous pouvez configurer une sorte de tâche cron qui appelle périodiquement eac-util et alimente les résultats dans votre système de surveillance, où vous pouvez ensuite configurer certaines notifications.

En plus de cela, exécutant mcelog est généralement une bonne idée. Cela dépend du système, mais les erreurs ECC non corrigibles/corrigibles sont probablement également signalées en tant qu'exception de vérification de la machine (MCE). Je veux dire, même de brèves périodes d'étranglement du processeur en raison d'une température plus élevée sont signalées comme MCE.

Solution 3 :

Cela dépend du matériel de votre serveur. Une boîte blanche ou un système Supermicro gérera cela différemment d'un Dell, HP ou IBM...

L'une des caractéristiques à valeur ajoutée des serveurs haut de gamme est qu'il existe un niveau d'intégration matériel/système d'exploitation. Les serveurs Nicer signaleront ce que vous recherchez dans le cadre des agents de gestion et/ou de la solution de gestion hors bande (ILO, DRAC, IPMI).

Vous devez utiliser les outils natifs de votre plate-forme matérielle.

Extrait d'un serveur HP ProLiant exécutant Linux et les agents de gestion HP :

Trap-ID=6056
ECC Memory Correctable Errors  detected.

et

Trap-ID=6052
Advanced ECC Memory  Engaged

ou plus grave

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

ou le pire... Ignorer une erreur pendant 6 jours jusqu'à ce que le serveur plante à cause d'une mauvaise RAM

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

Ceux-ci ont été enregistrés, ainsi que des traps SNMP et des e-mails ont été envoyés.

De manière générique, vous verrez Machine Check Exceptions dans le tampon circulaire du noyau, afin que vous puissiez vérifier dmesg ou lancez mcelog. Dans mes expériences avec l'équipement Supermicro sans IPMI, cela n'a pas tout saisi, et j'ai toujours eu des erreurs de RAM qui se sont glissées entre les mailles du filet et ont provoqué des pannes. Malheureusement, cela a conduit à des politiques archaïques de gravure de la RAM avant les déploiements du système.

Solution 4 :

Le rasdaemon package a été créé en remplacement de edac-tools , et les nouveaux noyaux ne prennent même pas en charge edac-tools ou mcelog .

Une mise à jour des pilotes du noyau Linux EDAC a changé la façon dont les compteurs d'erreurs de mémoire étaient gérés dans l'espace utilisateur, donc edac-tools et mcelog sont effectivement obsolètes.


Linux
  1. Comment obtenir la taille du répertoire sous Linux

  2. Comment répertorier les processus attachés à un segment de mémoire partagée sous Linux ?

  3. Comment trouver l'utilisation de la mémoire utilisateur sous Linux

  4. Comment obtenir le nom d'hôte de l'IP (Linux) ?

  5. Comment une erreur de mémoire sur un seul bit affectera-t-elle Linux?

Comment effacer la mémoire d'échange sous Linux

Comment désactiver définitivement Swap sous Linux

Comment obtenir votre adresse IP sous Linux

Comment fonctionne la mémoire d'échange sous Linux ?

Comment démarrer avec Arch Linux

Comment obtenir une liste de liens symboliques sous Linux