如何从 MCE 消息中查找故障内存模块?

如何从 MCE 消息中查找故障内存模块?

我正在尝试理解 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 

我怀疑是内存模块坏了。该服务器是 2x Xeon E5-2650,带有 8x8Go 内存模块(每个 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 组中没有内存模块。所以我的问题是:您是否同意此消息与内存故障有关?如果是,我如何找到需要更换的模块?

答案1

这些错误来自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 进行预防性维护和主动更换部件可以降低发生可怕的 UE(不可纠正错误)事件和系统“崩溃”的可能性。

有关 EDAC 的更多信息,请访问:

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

答案2

一些供应商表示,在一定时期内出现几次可纠正的错误是没有害处的。

例如,Oracle 表示,当发生以下事件之一时,应更换 DIMM:

  • 单个 DIMM 在 24 小时内出现超过 24 个可纠正错误 (CE)并且没有其他 DIMM 显示进一步的 CE。

  • 由于无法纠正的内存错误 (UCE),DIMM 未能通过 BIOS 下的内存测试。

  • 发生 UCE,调查显示错误源于记忆。

24小时内通知24个错误。

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

还,

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

关于最后一点,HP 也说了类似的话,可能只是服务器固件误检了内存错误。他们说,在许多情况下,固件升级可以修复误报。如果您开始从不同的 DIMM 接收 MCE,情况可能尤其如此。

答案3

安装 mcelog 并将其作为守护进程运行会有所帮助,它有助于提供更好的报告。它们仍然很隐晦,但可以稍微提供一些信息来查找罪魁祸首 DIMM。

mcelog 还可以通过禁用具有过多内存错误的页面来处理实时问题,从而让您有更多机会让机器运行更长时间,直到您恢复它。

相关内容