Wie sieht ein ECC-RAM-Fehler aus?

8

Für Nicht-ECC-Speicher habe ich eine gute Vorstellung davon, wie ein Fehler aussieht. Bestimmte zufällige Dinge laufen schief (z. B. PNG-Prüfsummen schlagen einmal und dann nicht beim nächsten Mal fehl), so etwas. Aber ich bin relativ neu im ECC-RAM. Was erwarte ich, wenn der ECC-RAM ausfällt? Ich weiß, wenn ein Einzelbit umgedreht ist, sollte dies automatisch korrigiert werden. Aber woher weiß ich, ob es schwerwiegendere Probleme gibt oder ob das Modul ausgetauscht werden muss?

Ich habe einen Bericht gefunden , der darauf hindeutet, dass sich das System möglicherweise spontan ausschaltet oder nicht einschaltet, aber mir ist nicht klar, warum dies der Fall ist.

arcticmac
quelle

Antworten:

5

Linux beendet die Programme mithilfe von Speicherseiten, deren Bits bis zur Wiederherstellung umgedreht wurden (also ein ECC-Wort mit zwei Umdrehungen), und verwendet dabei ein SIGBUS-Signal. Dann wird diese Seite auf eine schwarze Liste gesetzt, damit sie nicht wiederverwendet wird.

Wenn wiederholt korrigierte Fehler auftreten (normalerweise nicht bei vorübergehenden Flips, aber bei harten Fehlern, die nach der Korrektur bestehen bleiben), werden Seiten transparent auf eine andere physische Seite migriert, wobei jedoch dieselben virtuellen Adressen verwendet werden. Dies erfolgt über einen "Leaky Bucket" -Zähler, der die ECC-Fehler pro Seite in den letzten X Zeiteinheiten zählt.

Diese Ansätze werden als Hard- und Soft-Page-Offline bezeichnet. Sie können mehr lesen und über mcelog , das Teil aller Linux-Kernel ab Version 2.6 ist, auf Fehlerstatistiken / -protokolle zugreifen . Beachten Sie, dass Sie es so einstellen können, dass Ihr Kernel bei jedem Fehler in Panik gerät und den Computer neu startet, wenn Sie dies wünschen.

Dies gibt es auch unter dem Namen Memory Page Retirement in Solaris-Systemen, und andere Betriebssysteme haben zweifellos eine eigene Version davon, obwohl ich die Namen oder Referenzen auf der Oberseite meines Kopfes nicht kenne.

Kurz gesagt, die Hardware meldet die Fehler und das Betriebssystem mildert ihre Auswirkungen. Es besteht also die Möglichkeit, dass Sie nicht viele Symptome bekommen, aber Sie können Ihr Betriebssystem oder Ihre Tools nach Statistiken fragen.

Cimbali
quelle
TIL-Seiten-Offlining und Hard / Soft-Versionen davon. Hier ist eine Schnittstelle, um sie auszulösen. kernel.org/doc/Documentation/ABI/testing/…
Paul
3

Ich habe nur einmal wirklich einen ECC-Fehler gesehen. Dies war auf einem Dell-Server und das Problem tritt an mehreren Stellen auf:

  • Auf dem vCenter-Server (es war ein VMWare-Host) über IPMI
  • In den BIOS-Protokolldateien können Sie normalerweise beim Booten das Setup aufrufen, um protokollierte Fehler anzuzeigen
  • Über die Dell Remote Management Tools oder ähnliches für andere Systeme

Angesichts der auf vielen Servern vorhandenen Speichermenge kann ein einzelner Fehler ein laufendes Programm nicht ausreichend beschädigen, um einen Absturz zu verursachen. Es kann nur subtile oder gar keine Probleme verursachen, wenn der Fehler im RAM auftritt, der keinem bestimmten Programm zugewiesen wurde.

Da es sich um ECC-RAM handelt, können Einzelbitfehler korrigiert werden und die Ausführung von Programmen nicht beeinträchtigen. Der Sinn von ECC-RAM sind mehr oder weniger die beiden oben genannten Dinge:

  • Die Fähigkeit, Fehler zu erkennen und zu protokollieren
  • Die Fähigkeit, Einzelbitfehler zu korrigieren

Sie suchen also nach Fehlern in den Verwaltungstools und sollten im Allgemeinen weniger Fehler erhalten als bei Verwendung von Nicht-ECC-RAM. Das Ersetzen von Modulen wird immer empfohlen, wenn Fehler auftreten, dh wenn die Fehlerrate über eine (sehr niedrige) Hintergrundereignisrate steigt. Hoffe das klärt es ein bisschen auf.

EDIT: Siehe auch diese Frage für mehr zum gleichen Thema.

EDIT 2: Ich hatte gerade eine andere - hier ist ein Screenshot für diejenigen, die daran interessiert sind, wie es in VMWare vCenter aussieht (Hardware-IDs verschlüsselt): Speicherfehler wie in vCenter angezeigt

MrMajestyk
quelle