Hauptspeicherfehler sehr viel häufiger als bisher angenommen
Eine Studie von Google und der Universität Toronto zeigt, dass DRAM-Module vergleichsweise häufig patzen.
Bisher gab es nur sehr wenige praktische Untersuchungen zu Häufigkeit und Ursachen von Fehlern im Hauptspeicher von PCs und Servern. Selbstverständlich sind zahlreiche Studien zu dem Thema bekannt, aber diese beziehen sich auf Experimente an einzelnen Chips und Speichermodulen unter Laborbedingungen. Die Firma Google hat in Kooperation mit der Professorin Bianca Schroeder von der Uni Toronto, die früher an der Carnegie Mellon University (CMU) tätig war, nun Daten veröffentlicht, die über zweieinhalb Jahre bei "der Mehrheit der Google-Serverflotte" gesammelt wurden. Diese Studie (PDF-Datei) belegt, dass DRAM-Fehler sehr viel häufiger auftreten als bisher erwartet und dass in der Praxis "harte Fehler" – also Probleme mit einzelnen Speicherzellen oder DIMMs – sehr viel häufiger sind als sogenannte Soft Errors, die zufällig etwa durch kosmische Strahlung oder andere elektromagnetische Einstrahlungen entstehen und bislang als wichtigste DRAM-Fehlerquelle angesehen wurden.
Die Ergebnisse der Studie lassen sich nicht ohne Weiteres auf herkömmliche Desktop-PCs und Notebooks übertragen, denn es wurden ausschließlich verschiedene Serversysteme von Google untersucht, die alle mit (unterschiedlichen) ECC-Fehlerkorrekturverfahren arbeiten. Die Studie unterscheidet deshalb zwischen korrigierbaren und nicht korrigierbaren Fehlern (Correctable Errors, CE/Uncorrectable Errors, UE). Die einfachsten aktuellen ECC-Verfahren korrigieren 1-Bit-Fehler zuverlässig, können Multi-Bit-Fehler aber nur erkennen und nicht ausbügeln. Komplexere Mehrkanal-Speichercontroller – bekannt ist etwa die sogenannte Chipkill-Technik von IBM – korrigieren auch vier oder gar acht gleichzeitig auftretende Fehler und können so den Ausfall eines kompletten Chips mit vier (x4) beziehungsweise acht (x8) Datensignalleitungen überbrücken (Single Device Data Correction, SDDC). Die Firmware von Serverboards kann solche Fehler beziehungsweise deren Korrektur protokollieren. Einige der von Google eingesetzten Systeme nutzen auch Memory Scrubbing: Damit sich Einzel-Bitfehler nicht akkumulieren, überprüft der Speicher-Controller bei geringer Auslastung kontinuierlich das RAM. Ohne Memory Scrubbing erkennt der Speicher-Controller Bitfehler erst beim Zugriff auf die jeweiligen Zellen.
Die Studie geht nicht näher auf die Zahl der Systeme sowie Hersteller und Typen der eingesetzten Prozessoren, Mainboards und Speichermodule ein, sondern verrät nur einige gröbere Angaben. So wurden sechs verschiedene "Plattformen" untersucht, von denen drei mit DDR-Speicher bestückt waren (die Datensammlung erfolgte zwischen Januar 2006 bis Juni 2008), zwei mit DDR2-SDRAM-Modulen und eine mit Fully-Buffered-(FB-)DIMMs – bei Letzterer handelt es sich offenbar um Xeon-Server von Intel, denn nur diese arbeiteten damals mit FB-DIMMs. Der FB-DIMM-Controller der Xeon-Chipsätze unterstützt je nach DIMM-Bestückung x4-SDDC.
Die Speichermodule stammten von sechs unterschiedlichen Firmen, es kamen Module mit 1, 2 oder 4 GByte Kapazität zum Einsatz; die verschiedenen Server waren auch mit unterschiedlich vielen Modulen bestückt.
Die 12-seitige Studie kommt zu sieben wesentlichen Ergebnissen. Pro Jahr trat bei rund einem Drittel aller Server beziehungsweise bei 8 Prozent aller DIMMs mindestens ein korrigierbarer Fehler auf. Dieses Ergebnis liegt um ein Mehrfaches höher als von bisherigen Laborstudien und Untersuchungen zu weniger Maschinen bekannt. Die jährliche Rate nicht korrigierbarer Fehler, die üblicherweise zum Absturz oder zum Herunterfahren des Servers führen, betrug 1,3 Prozent pro Server beziehungsweise 0,22 Prozent pro DIMM.
Die Fehlerhäufigkeit verteilte sich sehr ungleichmäßig über die Systeme und es war kein klarer Zusammenhang zwischen bestimmten Speichertypen und Plattformen erkennbar. Allerdings produzierten Module, bei denen in der Vergangenheit bereits Fehler aufgetreten waren, mit sehr hoher Wahrscheinlichkeit später wieder Fehler. Das belegt auch, dass Soft Errors eine deutlich seltenere Fehlerquelle sind als Hardware-Probleme. Es ist also wichtig, auftretende Fehler zu protokollieren und die betroffenen Module auszutauschen. Die Häufigkeit der Speicherfehler nimmt außerdem mit wachsendem Alter der Speicherriegel zu.
Die Betriebstemperatur der Speicherchips hatte kaum Einfluss auf die Fehlerhäufigkeit, das gilt allerdings im Rahmen der geringen Schwankungsbreite von 20 Kelvin während der Untersuchungen, denn die Server arbeiteten selbstverständlich in klimatisierten Rechenzentren. Eine ältere Studie (PDF-Datei) von Prof. Schroeder und Google, in der es um Festplatten ging, wurde diesbezüglich auch oft falsch interpretiert. Wenig überraschend stieg die Fehlerwahrscheinlichkeit auch mit dem Auslastungsgrad des Hauptspeichers, allerdings bei manchen Systemen auch mit der Speichermenge. Hier lässt die Studie kaum genauere Rückschlüsse zu, denn gleiche Speicherkapazitäten wurden mit unterschiedlichen Zahlen von Speichermodulen und Speicherchips realisiert.
Anders als in Servern kommen in Desktop-PCs und Notebooks fast ausschließlich Speicher-Controller und Speichermodule ohne ECC-Funktion zum Einsatz. Der Einsatz von ECC gilt bei Systemen mit vergleichsweise kleinem Hauptspeicherausbau, die diesen zudem nur selten voll ausnutzen und nur wenige Stunden am Tag arbeiten, als verzichtbar – jedenfalls ist unklar, ob Speicherfehler im Vergleich zu anderen Fehlerquellen besonders häufig zu Abstürzen führen. Angesichts der neuen Erfahrungen mit Speicherfehlern scheint es aber jedenfalls ratsam, Speicherchips nicht außerhalb ihrer Betriebsparameter zu betreiben – sie also nicht zu übertakten.
Bereits 2006, im Vorfeld der Vista-Einführung, hatte Microsoft – wohl auch im Hinblick auf den bei Vista-x64-Installationen typischerweise größeren Hauptspeicherausbau – den Einsatz von ECC empfohlen, allerdings offenbar erfolglos. Non-ECC-DIMMs sind billiger; bei bestimmten Schreibzugriffen kann die Berechnung der ECC-Prüfbits zudem die Latenzzeiten des RAM verlängern. Intel-Prozessoren und -Chipsätze für Desktop-PCs und Notebooks unterstützen ECC nicht. Die AMD-Prozessorfamilien Athlon und Phenom unterstützen ECC, doch nicht jedes Mainboard-BIOS erlaubt die Nutzung dieser Funktion oder protokolliert korrigierte Fehler. (ciw)