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.
Ich habe nur einmal wirklich einen ECC-Fehler gesehen. Dies war auf einem Dell-Server und das Problem tritt an mehreren Stellen auf:
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:
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):
quelle