如何从MCE消息中find错误的内存模块?

我想了解MCE消息来查找哪个内存模块在服务器上是坏的。 此消息出现在今天冻结两次的服务器中的/var/log/kern.log中。

 Apr 13 22:39:22 mbox kernel: [36247975.116860] sbridge: HANDLING MCE MEMORY ERROR Apr 13 22:39:22 mbox kernel: [36247975.116867] CPU 0: Machine Check Exception: 0 Bank 5: 8c00004000010090 Apr 13 22:39:22 mbox kernel: [36247975.116869] TSC 0 ADDR 4a0d75900 MISC 21405cdc86 PROCESSOR 0:206d7 TIME 1428957562 SOCKET 0 APIC 0 Apr 13 22:39:22 mbox kernel: [36247975.951013] EDAC MC0: 1 CE memory read error 

我怀疑是坏记忆模块。 该服务器是具有8x8Go内存模块的2x至强E5-2650(每个CPU有8个内存插槽)

这是来自lshw的内存模块人口:

  *-memory:0 description: System Memory physical id: 2d slot: System board or motherboard *-bank:0 description: DIMM DDR3 1333 MHz (0,8 ns) product: 9965516-197.A vendor: Kingston physical id: 0 serial: B83AE5C2 slot: P1_DIMMA1 size: 8GiB width: 64 bits clock: 1333MHz (0.8ns) *-bank:1 description: DIMM Synchronous [empty] product: Dimm1_PartNum vendor: Dimm1_Manufacturer physical id: 1 serial: Dimm1_SerNum slot: P1_DIMMA2 width: 64 bits *-bank:2 description: DIMM DDR3 1333 MHz (0,8 ns) product: 9965516-048.A vendor: Kingston physical id: 2 serial: EC309238 slot: P1_DIMMB1 size: 8GiB width: 64 bits clock: 1333MHz (0.8ns) *-bank:3 description: DIMM Synchronous [empty] product: Dimm4_PartNum vendor: Dimm4_Manufacturer physical id: 3 serial: Dimm4_SerNum slot: P1_DIMMB2 width: 64 bits *-bank:4 description: DIMM DDR3 1333 MHz (0,8 ns) product: 9965516-048.A vendor: Kingston physical id: 4 serial: E9305438 slot: P1_DIMMC1 size: 8GiB width: 64 bits clock: 1333MHz (0.8ns) *-bank:5 description: DIMM Synchronous [empty] product: Dimm7_PartNum vendor: Dimm7_Manufacturer physical id: 5 serial: Dimm7_SerNum slot: P1_DIMMC2 width: 64 bits *-bank:6 description: DIMM DDR3 1333 MHz (0,8 ns) product: 9965516-048.A vendor: Kingston physical id: 6 serial: E7305738 slot: P1_DIMMD1 size: 8GiB width: 64 bits clock: 1333MHz (0.8ns) *-bank:7 description: DIMM Synchronous [empty] product: Dimm10_PartNum vendor: Dimm10_Manufacturer physical id: 7 serial: Dimm10_SerNum slot: P1_DIMMD2 width: 64 bits *-memory:1 description: System Memory physical id: 3f slot: System board or motherboard *-bank:0 description: DIMM DDR3 1333 MHz (0,8 ns) product: 9965516-197.A vendor: Kingston physical id: 0 serial: B63A08C3 slot: P2_DIMME1 size: 8GiB width: 64 bits clock: 1333MHz (0.8ns) *-bank:1 description: DIMM Synchronous [empty] product: Dimm1_PartNum vendor: Dimm1_Manufacturer physical id: 1 serial: Dimm1_SerNum slot: P2_DIMME2 width: 64 bits *-bank:2 description: DIMM DDR3 1333 MHz (0,8 ns) product: 9965516-048.A vendor: Kingston physical id: 2 serial: EA309638 slot: P2_DIMMF1 size: 8GiB width: 64 bits clock: 1333MHz (0.8ns) *-bank:3 description: DIMM Synchronous [empty] product: Dimm4_PartNum vendor: Dimm4_Manufacturer physical id: 3 serial: Dimm4_SerNum slot: P2_DIMMF2 width: 64 bits *-bank:4 description: DIMM DDR3 1333 MHz (0,8 ns) product: 9965516-048.A vendor: Kingston physical id: 4 serial: E7305938 slot: P2_DIMMG1 size: 8GiB width: 64 bits clock: 1333MHz (0.8ns) *-bank:5 description: DIMM Synchronous [empty] product: Dimm7_PartNum vendor: Dimm7_Manufacturer physical id: 5 serial: Dimm7_SerNum slot: P2_DIMMG2 width: 64 bits *-bank:6 description: DIMM DDR3 1333 MHz (0,8 ns) product: 9965516-048.A vendor: Kingston physical id: 6 serial: E7305B38 slot: P2_DIMMH1 size: 8GiB width: 64 bits clock: 1333MHz (0.8ns) *-bank:7 description: DIMM Synchronous [empty] product: Dimm10_PartNum vendor: Dimm10_Manufacturer physical id: 7 serial: Dimm10_SerNum slot: P2_DIMMH2 width: 64 bits *-memory:2 UNCLAIMED physical id: 7 *-memory:3 UNCLAIMED physical id: 9 

正如你可以注意到,在银行#5没有内存模块。 所以我的问题是:你同意这个消息是关于内存失败? 如果是这样,我怎么才能find哪个模块被replace?

这些错误来自EDAC – 错误检测和纠正设备的edac_mc类。

您收到的事件是CE事件(可纠正错误)。 这些迹象表明DIMM开始出现故障。

EDAC没有报告任何有关哪个内存行或通道的具体信息,所以很难说出哪一个要更换,直到出现故障。

但看看:/ sys / devices / system / edac / mc / mc *,这可能会告诉你更多关于哪个行/ dimm可能是错误的。

例如

ls -s /sys/devices/system/edac/mc/mc0 total 0 0 ce_count 0 csrow1 0 csrow4 0 csrow7 0 reset_counters 0 size_mb 0 ce_noinfo_count 0 csrow2 0 csrow5 0 device 0 sdram_scrub_rate 0 ue_count 0 csrow0 0 csrow3 0 csrow6 0 mc_name 0 seconds_since_reset 0 ue_noinfo_count

看看ce_count字段。

在旁注:

系统仍然可以继续运行,但安全性较差。 展示CE的内存DIMM的预防性维护和主动部件更换可以减less可怕的UE(不可纠正的错误)事件和系统“恐慌”的可能性。

更多关于edac的信息在这里:

https://www.kernel.org/doc/Documentation/edac.txt

它可以帮助安装mcelog并将其作为守护程序运行,它可以帮助提供更好的报告。 他们仍然是神秘的,但有更多的信息去寻找DIMM DIMM。

通过禁用内存错误过多的页面,mcelog也可以处理实时问题,从而使您有更多机会保持机器运行时间更长,直到您恢复为止。

一些供应商说,在一段时间内可以纠正几个错误是没有害处的。

例如,甲骨文表示,在发生以下事件之一时更换DIMM:

  • 超过24个可纠正错误(CE)在24小时内从单个DIMM产生 ,没有其他DIMM显示更多的CE。

  • 由于不可纠正的内存错误(UCE),DIMM在BIOS下无法进行内存testing。

  • UCEs发生并且调查显示错误来自记忆。

24小时内通知24个错误。

https://docs.oracle.com/cd/E19150-01/820-4213-11/dimms.html

也,

如果多个DIMM遇到多个CE,则在更换任何DIMM之前,必须由合格的Sun支持专家排除其他可能的CE原因。

最后一点,惠普公司表示类似的东西,它可能只是错误地检测到内存错误的服务器固件。 他们说,在很多情况下,固件升级修复了误报。 如果您开始接收来自不同DIMM的MCE,则情况尤其如此。