我有一堆 Sun X2200-M2 服务器。这些服务器有 ECC 内存。
在某些服务器中,我收到 eLOM 中关于“检测到可纠正的 ECC 错误”的警告,例如:
# ssh regress11 ipmitool sel elist
1 | 05/20/2010 | 14:20:27 | Memory CPU0 DIMM2 | Correctable ECC | Asserted
2 | 05/20/2010 | 14:33:47 | Memory CPU0 DIMM2 | Correctable ECC | Asserted
...有些比其他的更频繁。
该特定系统上的内核也抛出了 EDAC 错误,尽管其频率比 eLOM 记录 ECC 事件的频率高得多:
EDAC k8 MC0: general bus error: participating processor(local node response), time-out(no timeout) memory transaction type(generic read), mem or i/o(mem access), cache level(generic)
MC0: CE page 0x42a194, offset 0x60, grain 8, syndrome 0xf654, row 4, channel 1, label "": k8_edac
MC0: CE - no information available: k8_edac Error Overflow set
EDAC k8 MC0: extended error code: ECC chipkill x4 error
EDAC k8 MC0: general bus error: participating processor(local node response), time-out(no timeout) memory transaction type(generic read), mem or i/o(mem access), cache level(generic)
MC0: CE page 0x48cb94, offset 0x10, grain 8, syndrome 0xf654, row 5, channel 1, label "": k8_edac
MC0: CE - no information available: k8_edac Error Overflow set
EDAC k8 MC0: extended error code: ECC chipkill x4 error
现在,如果服务器检测到无法纠正的 ECC,系统将重置,因此显然这是坏了,移除/更换已识别的内存条或内存对即可解决问题。
但我在想,如果错误是可纠正的,那么就没有紧急问题——我可以将其视为警告,并准备在开始发生无法纠正的错误时拉动操纵杆/对?
答案1
取决于您出错的频率。出于各种原因,ECC 平均每年必须纠正一次单比特错误。如果您出错的速度比这快得多,或者它们是多比特错误,您应该担心(我会尽快更换 RAM)。
此外,ECC 并不完美。累积错误可能会通过 ECC;这将导致操作系统崩溃或类似问题。