Wie kann man feststellen, ob RAM ECC funktioniert?

19

Ich plane, etwas ECC-RAM als Ersatz für das derzeit auf meinem Asus M5A97 Pro-Motherboard (AMD 970-Chipsatz, FX-6100-CPU) installierte Nicht-ECC-RAM zu erhalten.

Wie kann ich nach der Installation des Arbeitsspeichers feststellen, ob die ECC-Funktion des Arbeitsspeichers ordnungsgemäß funktioniert?

Ich habe mir überlegt, dmidecode --type memorywelche momentan für jeden RAM-Stick unter anderem druckt:

Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits

(Zum einen würde ich bei 1 Bit ECC pro Byte erwarten, dass die Datenbreite 64 Bit bleibt, die Gesamtbreite jedoch 72 Bit.)

Kann damit festgestellt werden, ob das ECC aktiv ist? Oder ist dmidecode dafür zu niedrig? Was könnte ich sonst noch verwenden (außer abzuwarten und zu sehen, ob ein ECC-Fehler in den Protokollen auftaucht, der anzeigt, dass er funktioniert, aber nicht, dass er nicht funktioniert)?

Update: Ich habe später an edac-utils gedacht. Installiere ich sie, bekomme ich Not enabling Memory Error Detection and Correction since EDAC_DRIVER is not set. Das gab mir edac-utilund edac-ctlausführbare Dateien. Kann eine davon für diesen Zweck verwendet werden?

ein CVn
quelle
2
Kann jemand mit mehr Zeit als ich den Teil über ecc_check.c von pugetsystems.com/labs/articles/… in eine der Antworten einfügen ?
Costin Gușă

Antworten:

12

Es scheint, dass es keinen todsicheren Weg gibt , wie auch immer verschiedene Ansätze eine Antwort geben können. Anscheinend müssen Sie so ziemlich die verschiedenen ausprobieren, bis Sie eine finden, die Ihnen sagt, dass ECC funktioniert.

In meinem Fall konnte memtest86 + 4.20 nicht zu der Erkenntnis gebracht werden, dass es sich um ECC-RAM handelt. Auch wenn ich es für ECC On konfiguriert habe, wird es dennoch ECC: Disabledin der IMC-Leitung gemeldet . Ich habe es noch nicht mit einer neueren Version versucht. Allerdings (möglicherweise nach der Installation von edac-utils, leider habe ich beide im Wesentlichen gleichzeitig ausgeführt), meldet Linux in den Boot-Protokollen (durchsetzt mit einigen anderen Einträgen):

[    4.867198] EDAC MC: Ver: 2.1.0
...
[    4.874374] MCE: In-kernel MCE decoding enabled.
[    4.875414] AMD64 EDAC driver v3.4.0
[    4.875438] EDAC amd64: DRAM ECC enabled.
...
[    4.875542] EDAC amd64: CS0: Unbuffered DDR3 RAM
[    4.875545] EDAC amd64: CS1: Unbuffered DDR3 RAM
[    4.875546] EDAC amd64: CS2: Unbuffered DDR3 RAM
[    4.875548] EDAC amd64: CS3: Unbuffered DDR3 RAM

Das ist ein ziemlich guter Hinweis. Manuell machen/etc/init.d/edac restart keine ähnlichen Protokolleinträge erstellt. Wenn Sie sich ein älteres Protokoll von vor einigen Neustarts ansehen, wird Folgendes angezeigt:

[   13.886688] EDAC MC: Ver: 2.1.0
[   13.890389] MCE: In-kernel MCE decoding enabled.
[   13.891082] AMD64 EDAC driver v3.4.0
[   13.891107] EDAC amd64: DRAM ECC disabled.
[   13.891116] EDAC amd64: ECC disabled in the BIOS or no ECC capability, module will not load.
[   13.891117]  Either enable ECC checking or force module loading by setting 'ecc_enable_override'.
[   13.891118]  (Note that use of the override may cause unknown side effects.)

dmidecode --type memory gibt auch zwei ziemlich starke Hinweise: die Eigenschaft "Fehlerkorrekturtyp" des physikalischen Speicherarrays (die jedoch aus irgendeinem Grund auf Nicht-ECC-RAM gleich war , was möglicherweise eher mit der Unterstützung des Motherboards als mit den Speicherfähigkeiten zusammenhängt).

Handle 0x0026, DMI type 16, 23 bytes
Physical Memory Array
    Location: System Board Or Motherboard
    Use: System Memory
    Error Correction Type: Multi-bit ECC

und die Gesamtbreite bzw. Datenbreite jedes Speichergeräts (die zusätzlichen Bits sind diejenigen, die für die ECC verwendet werden):

Handle 0x0028, DMI type 17, 34 bytes
Memory Device
    Array Handle: 0x0026
    Error Information Handle: Not Provided
    Total Width: 72 bits
    Data Width: 64 bits
ein CVn
quelle
5

Es gibt eine sehr einfache und effektive Möglichkeit, dies zu tun, vorausgesetzt, Sie haben Konsolenzugriff auf Ihren Server / PC und können diesen neu starten: starten memtest86 +

Dieses raffinierte Tool zeigt Ihnen schnell, ob der Speicher ECC-fähig ist. Ich glaube auch, dass es eine ECC-Validierung durchführt, wenn die eigentlichen Tests durchgeführt werden.

Hier ist ein (etwas veralteter) Screenshot: Bildbeschreibung hier eingeben

pauska
quelle
Perfekt! Im Moment sehe ich IMC : AMD FX(tm)-6100 Six-Core Processor (ECC : Disabled)und ECC off. Ich nehme dann an, wenn es mit den neuen DIMMs etwas anderes als Disabledund offfür ECC zeigt , bin ich bereit, was die Hardware anbelangt?
ein CVn
2
@ MichaelKjörling Ich beschäftige mich nur mit ECC auf Industriestandard-Servern mit Xeon-CPUs, daher habe ich keine Ahnung. Ich kann mir vorstellen, dass die CPU ECC unterstützen muss, da sich der Speichercontroller darin befindet.
Pause
en.wikipedia.org/wiki/… listet den FX-6100 als Zambezi (Bulldozer-basiert) auf, von denen "alle Modelle ... ECC [RAM] unterstützen"
ein CVn
Leider schien memtest86 + 4.20 meinen RAM nicht als ECC erkennen zu wollen. Es gibt jedoch einige andere starke Anzeichen dafür, dass ECC funktioniert. Siehe meine Antwort. Trotzdem vielen Dank!
CVn
1
Das sieht irgendwie relevant aus - confluence.wartungsfenster.de/display/Adminspace/…
Faheem Mitha