MC0, Zeile 2 und Kanal 0 sind signifikant. Versuchen Sie, DIMMA1 auf CPU0 zu ersetzen.
Als Beispiel musste ich ein fehlerhaftes DIMM in einem Linux-Server mit 16 vollständig bestückten DIMM-Steckplätzen und zwei CPUs identifizieren. Dies sind die Fehler, die ich auf der Konsole gesehen habe:
EDAC k8 MC1: general bus error: participating processor(local node origin), time-out(no timeout) memory transaction type(generic read), mem or i/o(mem access), cache level(generic)
EDAC MC1: CE page 0x103ca78, offset 0xf88, grain 8, syndrome 0x9f65, row 1, channel 0, label "": k8_edac
EDAC MC1: CE - no information available: k8_edac Error Overflow set
EDAC k8 MC1: extended error code: ECC chipkill x4 error
Das fehlerhafte DIMM auf meinem Server war DIMMA0 auf CPU1.
EDAC steht für Error Detection And Correction und ist unter http://www.kernel.org/doc/Documentation/edac.txt und /usr/share/doc/kernel-doc-2.6*/Documentation/drivers/edac/edac dokumentiert .txt auf meinem System (RHEL5). CE steht für "korrigierbare Fehler" und wie aus der Dokumentation hervorgeht, "liefern CEs frühzeitig Hinweise darauf, dass ein DIMM zu versagen beginnt."
Zurück zu den EDAC-Fehlern, die ich oben auf der Konsole meines Servers gesehen habe: MC1 (Speichercontroller 1) bedeutet CPU1, Zeile 1 wird in der Linux-EDAC-Dokumentation als csrow1 (Chip-Select-Zeile 1) bezeichnet, und Kanal 0 bedeutet Speicherkanal 0 Ich habe das Diagramm unter http://www.kernel.org/doc/Documentation/edac.txt überprüft , um festzustellen, dass csrow1 und Channel 0 DIMM_A0 (DIMMA0 auf meinem System) entsprechen:
Channel 0 Channel 1
===================================
csrow0 | DIMM_A0 | DIMM_B0 |
csrow1 | DIMM_A0 | DIMM_B0 |
===================================
===================================
csrow2 | DIMM_A1 | DIMM_B1 |
csrow3 | DIMM_A1 | DIMM_B1 |
===================================
(Wenn ich als weiteres Beispiel Fehler auf MC0, csrow4 und Kanal 1 gesehen hätte, hätte ich DIMMB2 auf CPU0 ersetzt.)
Natürlich gibt es auf meinem Server tatsächlich zwei DIMM-Steckplätze mit dem Namen DIMMA0 (einen für jede CPU), aber auch hier entspricht der MC1-Fehler der CPU1, die in der Ausgabe von dmidecode unter "Bank Locator" aufgeführt ist:
[root@rce-8 ~]# dmidecode -t memory | grep DIMMA0 -B9 -A8
Handle 0x002E, DMI type 17, 27 bytes.
Memory Device
Array Handle: 0x002B
Error Information Handle: Not Provided
Total Width: 72 bits
Data Width: 64 bits
Size: 4096 MB
Form Factor: DIMM
Set: None
Locator: DIMMA0
Bank Locator: CPU0
Type: DDR2
Type Detail: Synchronous
Speed: 533 MHz (1.9 ns)
Manufacturer:
Serial Number:
Asset Tag:
Part Number:
--
Handle 0x003E, DMI type 17, 27 bytes.
Memory Device
Array Handle: 0x002B
Error Information Handle: Not Provided
Total Width: 72 bits
Data Width: 64 bits
Size: 4096 MB
Form Factor: DIMM
Set: None
Locator: DIMMA0
Bank Locator: CPU1
Type: DDR2
Type Detail: Synchronous
Speed: 533 MHz (1.9 ns)
Manufacturer:
Serial Number:
Asset Tag:
Part Number:
(Auf meiner Workstation zeigt dmidecode tatsächlich die Teilenummer und die Seriennummer für meine DIMMs an, was sehr nützlich ist.)
Neben der Anzeige von Fehlern in der Konsole und in Protokollen können Sie auch Fehler pro MC / CPU, Zeile / csrow und Kanal anzeigen, indem Sie / sys / device / system / edac untersuchen. In meinem Fall waren die Fehler nur auf MC1, csrow1, Kanal 0:
[root@rce-8 ~]# grep "[0-9]" /sys/devices/system/edac/mc/mc*/csrow*/ch*_ce_count
/sys/devices/system/edac/mc/mc0/csrow0/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow0/ch1_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow1/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow1/ch1_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow2/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow2/ch1_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow3/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow3/ch1_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow4/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow4/ch1_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow5/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow5/ch1_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow6/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow6/ch1_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow7/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow7/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow0/ch0_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow0/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow1/ch0_ce_count:6941652
/sys/devices/system/edac/mc/mc1/csrow1/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow2/ch0_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow2/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow3/ch0_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow3/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow4/ch0_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow4/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow5/ch0_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow5/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow6/ch0_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow6/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow7/ch0_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow7/ch1_ce_count:0
Ich hoffe, dieses Beispiel ist hilfreich für alle, die versuchen, ein fehlerhaftes DIMM anhand von EDAC-Fehlern zu identifizieren. Für weitere Informationen empfehle ich dringend, die gesamte Linux EDAC-Dokumentation unter http://www.kernel.org/doc/Documentation/edac.txt zu lesen