在我们的一个计算节点上,我遇到了 ECC CE(可纠正错误)。有点奇怪的是,错误并不多,只是每 5 分钟发生一次。
消息日志:
May 7 11:43:37 armada9 kernel: [22220081.676263] EDAC MC1: 1 CE on unknown memory (csrow:4 channel:1 page:0x41daad offset:0xc30 grain:0 syndrome:0x2254)
May 7 11:48:37 armada9 kernel: [22220381.919057] EDAC MC1: 1 CE on unknown memory (csrow:4 channel:1 page:0x407bb8 offset:0x150 grain:0 syndrome:0x33a8)
May 7 11:53:37 armada9 kernel: [22220682.161798] EDAC MC1: 1 CE on unknown memory (csrow:4 channel:1 page:0x41e6bd offset:0x6a0 grain:0 syndrome:0x33a8)
May 7 11:58:37 armada9 kernel: [22220982.404501] EDAC MC1: 1 CE on unknown memory (csrow:4 channel:1 page:0x427c14 offset:0x880 grain:0 syndrome:0x33a8)
May 7 12:03:37 armada9 kernel: [22221282.647210] EDAC MC1: 1 CE on unknown memory (csrow:4 channel:1 page:0x426e88 offset:0x830 grain:0 syndrome:0x33a8)
syslog 示例条目:
May 7 12:03:37 armada9 kernel: [22221282.647114] [Hardware Error]: MC4 Error (node 1): DRAM ECC error detected on the NB.
May 7 12:03:37 armada9 kernel: [22221282.647210] EDAC MC1: 1 CE on unknown memory (csrow:4 channel:1 page:0x426e88 offset:0x830 grain:0 syndrome:0x33a8)
May 7 12:03:37 armada9 kernel: [22221282.647215] [Hardware Error]: Error Status: Corrected error, no action required.
May 7 12:03:37 armada9 kernel: [22221282.647299] [Hardware Error]: CPU:6 (10:8:0) MC4_STATUS[Over|CE|MiscV|-|AddrV|CECC]: 0xdc54400033080813
May 7 12:03:37 armada9 kernel: [22221282.647393] [Hardware Error]: MC4_ADDR: 0x0000000426e88830
May 7 12:03:37 armada9 kernel: [22221282.647443] [Hardware Error]: cache level: L3/GEN, mem/io: MEM, mem-tx: RD, part-proc: SRC (no timeout)
另一件让我困惑的事情是cat /sys/devices/system/edac/mc/mc*/csrow*/ce_count
显示 4x 0
。dmidecode -t memory | grep Size
报告安装了 8x 个2GB
骰子。但cat /sys/devices/system/edac/mc/mc*/csrow*/size_mb
显示 4x 4096
。我猜内存芯片是单排的,骰子成对配对。这种想法对吗?但它仍然不能解释为什么错误计数是0
。
这种情况已经持续了大约 2-3 天。到目前为止,所有错误都已报告为已更正,但这非常烦人,而且可能不安全。
RAM 是否快要坏了?我很幸运,只是一些系统进程碰巧被放在那里(而不是计算)?我认为我没有每 5 分钟运行一次任何东西,但也许有些日志记录工具是这样的。
或者可能是其他原因?
答案1
当我在 PowerEdge R815 中安装新的 DIMM 时,也出现了类似的问题。我以为其中一个 DIMM 坏了,但不知道 32 个 DIMM 中的哪一个坏了。结果发现,硬件的 LCD 面板(和硬件日志)报告了故障,并提供了 DIMM 插槽 ID。当我重新安装 DIMM 时,错误消失了 —— 所以这毕竟不是可以通过 ECC 纠正的错误。
答案2
将 csrow 和通道映射到物理插槽/DIMM 并尽快更换非常重要。根据我的经验,您将开始遇到越来越多的错误,但这一切都取决于芯片完全损坏的速度,我见过它从每天出现几个错误发展到第二天就死机,或者可能会持续几个月或更长时间(这完全取决于您的工作量)。最终,您的控制台将充满错误,最终导致 UE(不可纠正错误),您的服务器将崩溃,DIMM 将无法使用。
另一件重要的事情是,如果您的 BIOS(大多数服务器 BIOS 都会这样做)检测到多个位故障,它可能会禁用该 DIMM 插槽。不要擦除/删除或重置 BIOS 中已启用的 DIMM,否则您的服务器可能根本无法启动(因为没有 POST),除非您记得哪个 DIMM 被标记为坏的,否则您将不得不一个接一个地移除芯片,直到它启动才能找出哪个是坏的(在公司或数据中心环境中非常麻烦)。此外,如果更换已标记为坏的 DIMM,您可能必须重新启用它或从 BIOS 中擦除坏 DIMM 的记录才能识别它。