Warum sehe ich Null-Fehler im Nicht-ECC-RAM?

1792
Alexander Shcheblikin

Laut Quellen sind Speicherfehler ein sehr wahrscheinliches Ereignis:

  • Einige sagen, dass die Wahrscheinlichkeit eines DRAM-Fehlers bei nur 3 Tagen Betrieb eines Computers mit nur 4 GB RAM 95% beträgt.
  • Andere sagen, dass bei 32% der Server mindestens ein Fehler pro Monat auftritt, wobei 8% der DIMMs fehlerhaft sind.

Im Gegensatz zu diesen Schrecken habe ich in meinem mehr als 10-jährigen Einsatz von Personalcomputern genau keine der Speicherfehler gesehen.

Ich gebe zu, ich habe dem Thema nie besondere Aufmerksamkeit geschenkt. Ich habe jedoch mehrmals stundenlange memtest86Läufe gewagt und auch nie einen Fehler gesehen.

Einige der Faktoren, die IMO die Speicherprobleme verstärken sollte:

  • Ich baue meine Computer aus den meisten "Bulk Commodity" -Teilen zusammen: Mainstream-Budget-Motherboards und der nächstbeste Speicher.
  • Ich habe auch die Technologie in der Regel aus, z. B. in Zeiten von 32-Bit-Betriebssystemen 4 GB RAM und mit den aktuellen Desktop-CPUs und den neueren 64-Bit-Betriebssystemen 32 GB RAM.
  • Die Speicherauslastung ist mäßig hoch, und viele virtuelle Maschinen müssen rund um die Uhr kleine und große Aufgaben erledigen.

Trotzdem wurden keine speicherbezogenen Probleme gefunden!

Wie ist das?

4
Erstens, wenn die Speicherquote bei 95% liegt, würde die Branche aus dem Geschäft gehen. Die von Ihnen angegebene Quelle ist einfach falsch Ramhound vor 10 Jahren 0
@ Ramhound Sekunde…? Synetech vor 10 Jahren 2
@Synetech: Wenn der Speicher nur eine Fehlerquote von 95% hat, wird er nicht verwendet. Das Papier ist auch 4 Jahre alt und schaut sich DDR und DDR2 an. Da es 2009 geschrieben wurde, ist es im Grunde ungenau, da dies etwa 4 Jahrzehnte in Technologiezeit ist. Ja, Technologiezeit ist um 10 schneller als die normale Zeit. Was die letzte Frage angeht, ist es einfach, dass der Beitrag und der Blogbeitrag (Schocker) nicht zu 100% genau sind Ramhound vor 10 Jahren 0
Woher wissen Sie, dass Sie keine Speicherfehler gesehen haben? Sie hatten noch nie einen Absturz oder ein Einfrieren, das Sie nicht erklären konnten? David Schwartz vor 10 Jahren 0
@DavidSchwartz Wenn Sie fragen, ob ich persönlich einen Absturz hatte, konnte ich nicht erklären, dass dies negativ wäre. Ich bemühe mich, jeden Absturz zu verstehen, der passiert. Ich habe normalerweise eine allgemeine Vorstellung von dem Grund Ramhound vor 10 Jahren 0
@Ramhound Dann klingt es so, als ob eine gute Chance besteht, dass Sie Abstürze oder Einfrieren aufgrund von Speicherfehlern falsch diagnostiziert haben. Oder Sie hatten einfach absurd Glück und hatten nie einen Erinnerungsfehler an einem wichtigen Punkt. David Schwartz vor 10 Jahren 0
@Ramhound, Sie sagten * "Zuerst ..." *, dann nichts weiter. Gab es einen zweiten Punkt? Synetech vor 10 Jahren 1
Speicherfehler und Speicherfehler sind zwei verschiedene Dinge. Ein umgedrehtes oder fehlendes Bit hier oder in der Regel ist es in den meisten Anwendungen in Ordnung, die keine extrem hohe Genauigkeit / Genauigkeit erfordern ... Wie in den meisten Anwendungen ... Austin T French vor 10 Jahren 0

2 Antworten auf die Frage

7
Synetech

Blerg!

Verdammt, ich habe versucht, das in einen Kommentar zu packen, aber die Formatierung reichte nicht aus, also musste ich auf eine Antwort zurückgreifen.

Statistiken

Der Grund, warum Sie es nicht gesehen haben, ist, dass die Wahrscheinlichkeit, dass Sie es sehen, gering ist und, was noch wichtiger ist, Sie nicht gesucht haben . Die Wahrscheinlichkeit, dass Sie einen Speicherfehler bemerken, wird aus den folgenden Quoten berechnet:

  • ein kosmischer Strahl, der die Erde trifft
  • der Strahl trifft an Ihrem Standort
  • Der Strahl wird nicht durch etwas anderes blockiert oder absorbiert
  • der Strahl trifft Ihren Computer
  • der Strahl trifft deinen RAM
  • der Strahl flippte ein wenig im RAM
  • das Bit befindet sich in einem Block des momentan zugewiesenen Speichers
  • der verwendete Speicher ist entweder:
    • getestet von einem Programm wie memtest86 +
      • genau im richtigen Moment getestet, um den Fehler zu erkennen (z. B. zwischen der Mikrosekunde, in der das Programm den Speicher schreibt, dann zurückliest und vergleicht)
    • einem Block ausführbaren Codes zugeordnet, in diesem Fall auch:
      • Das geänderte Bit ändert den Code erheblich genug, um den Code drastisch zu beeinflussen
      • Der drastische Effekt führt zum Absturz
      • das abstürzende Programm stürzt tatsächlich sichtbar ab, anstatt einfach zu verschwinden
      • Das Programm ist etwas, das Sie bemerken und fürchten
      • Sie verwerfen es nicht einfach als fehlerhaftes Programm

Dies ist natürlich der Fall, wenn wir von vorübergehenden, intermittierenden Fehlern wie von kosmischen Strahlen und Interferenzen von anderen elektronischen Geräten sprechen. Wenn das RAM-Modul tatsächlich defekt ist, werden Sie wahrscheinlich mit Sicherheit irgendwann Probleme sehen (allerdings ist es sogar denkbar, dass Sie niemals den gesamten physischen RAM zu einem bestimmten Zeitpunkt verwenden und der Fehler klein und vollständig lokalisiert ist) In einem Bereich, der niemals von Ihnen verwendet wird, wird möglicherweise kein Fehler angezeigt.

Die Chancen eines transienten Fehler können in der Tat überraschend hoch sein, aber wahrscheinlich hat Speicherfehler im Laufe der Jahre gesehen und einfach hättest sie nicht wegen zwei der oben genannten Listenelemente fest: der ausführbaren Code und der Buggy-ignorierend.

Beispiele

Wenn das geänderte Bit zufällig in ein Datenstück fällt, werden Sie es möglicherweise nicht einmal bemerken, da es leicht ertrinken könnte.

Wenn zum Beispiel ein Bit in einem Block von Textdaten umgedreht wurde, stellen Sie möglicherweise fest, dass es The end.sich in etwas geändert hat Tje end., aber anstatt zu bemerken, dass das Bit hdurch ein ersetzt wurde, jda ein einzelnes Bit umgedreht wurde (Sie können es gerne bestätigen). Sie würden eher davon ausgehen, dass Ihr Finger die falsche Taste drückt, weil sie sich direkt nebeneinander befinden und den Fehler beheben.

Schlimmer noch, wenn das umgedrehte Bit Teil einer Bild-, Audio- oder Videodatei war, bemerken Sie möglicherweise überhaupt nichts. Wenn es zufällig genau an der richtigen Stelle war, könnte dies zu einer spürbaren Änderung führen, z. B. dass die Breite oder Höhe des Bildes falsch ist, oder ein leichtes Knallgeräusch im Song oder etwas Korruption im Video, was zu einer kurzzeitigen Blockierung führt während der Dekodierung. Angesichts der schiere Größe von Mediendateien sind die Chancen, dass sich ein einzelnes Bit genau am richtigen Ort befindet, jedoch äußerst gering. Es ist viel wahrscheinlicher, dass die Farbe eines einzelnen Pixels geringfügig geändert wird (z. B. dunkelrot zu etwas dunklerem Rot), und Sie würden es wahrscheinlich nie bemerken. Möglicherweise ändert sich ein einzelner Peak der Wellenform des Songs, sodass die Amplitude etwas niedriger ist und Sie dies wahrscheinlich nie bemerken würden.konnte es nicht bemerken

Vorbehalt

Die erschreckende Tatsache ist, dass sich ein solcher unerkannter, vorübergehender Fehler tatsächlich einschleichen und unbemerkt bleiben kann. Aus diesem Grund war ich sehr besorgt über die Verwendung von Flash-Medien für Sicherungen, da diese manchmal beschädigt werden. Wenn Sie dies nicht bemerken, könnte sich die Beschädigung in Ihre Sicherung einschleichen und dauerhaft enden. Darüber hinaus kann das Testen auf Beschädigungen schwierig sein, da Änderungen erwartet werden, sodass Sie jede einzelne Änderung manuell prüfen müssen, was bei Binärdateien ein Alptraum wäre.

Wegbringen

Ich nehme an, die gute Seite, wenn es eine gibt, ist, dass, wie ich in der Liste sagte, die Änderung zufällig in einem Teil der Daten landen muss, der eigentlich wichtig ist. Für die meisten Menschen ist die Wahrscheinlichkeit, dass sie in wichtigen, unersetzlichen Daten, die gespeichert werden sollen, landet, sehr gering.

Sie können ein Programm wie memtest verwenden, um Ihren RAM auf Fehler zu überprüfen. Wenn es vorübergeht, müssen Sie sich nur um die "eine-zu-eine-Milliarden-Chance" kümmern (ich überlasse die exakte Berechnung, falls gewünscht), dass ein paar wichtige Daten beschädigt werden, ansonsten ein bisschen "Bit-rot" hier oder dort wird normalerweise nicht viel anderes tun, als vielleicht ein Programm zum Absturz zu bringen und Sie dazu zu bringen, bei den Entwicklern zu schwören (obwohl selbst dann, wenn es es nicht noch einmal tut ...)

Ein guter Punkt, wenn der Speicher "im richtigen Moment getestet werden muss, um den Fehler zu erkennen"! In der Tat scheint "memtest86" nicht für sogar längerfristige Datenspeicherszenarien zu testen. Alexander Shcheblikin vor 10 Jahren 0
Dies ist eine äußerst informative, gut geschriebene und gut formatierte Antwort. sudo vor 9 Jahren 0
1
Brian

Während frühe PCs wie der IBM-PC ein Paritätsbit zur Erkennung von Speicherfehlern enthielten, ist dies bei den meisten modernen Systemen nicht der Fall. Das Ergebnis ist, dass die Fehler nicht als Speicherfehler abgefangen werden, sondern manchmal andere Probleme wie Datenbeschädigung und ungerade Abstürze verursachen.

  • Speicher mit Parität - Fehler erkennen
  • Speicher mit ECC - Fehler erkennen und beheben
  • Speicher ohne - Fehler werden nicht erkannt