我正在尝试理解 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 的更多信息,请访问:
答案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 还可以通过禁用具有过多内存错误的页面来处理实时问题,从而让您有更多机会让机器运行更长时间,直到您恢复它。