内存:报错的和不报错的

by

in

内存故障分两种:会在日志里留下痕迹的,和不会的。

前一种容易被忽视,因为「ECC 能纠错」听起来像是问题已经解决了;后一种难查,因为除了机器偶尔重启之外没有别的线索。

这两种都值得认真对待,原因不太一样。

一、一条内存报错,整个通道跟着降速

现象:系统日志或 BMC 日志报某条 DIMM 出现可纠错错误(Correctable Error,CE)。业务没有中断,数据也没有出错,但整体性能下来了。

原因:内存控制器为了保证稳定性,会对出问题的通道采取保护措施——把该通道降频,或者关闭跨通道交织(interleaving)。

后果:一条内存的问题,代价是整个通道、甚至整台机器的内存带宽。对内存带宽敏感的业务(数据库、内存计算、虚拟化密度高的宿主机),这个损失是能被直接感知到的。

怎么判断要不要换:看 BMC 日志里 CE 计数的增长速度

  • 一个月零星几次:观察
  • 一天几十上百次且在加速:该换了

ECC 能纠错,不代表可以一直放着不管。持续的 CE 通常是硬件劣化的前兆,而且它已经在拿性能换稳定了。

换的时候注意:rank 和频率要和同通道内其余条子一致。这一条展开见《同型号同容量,为什么装不上》。

二、插槽顺序装错,认不全容量

现象:装了 8 条内存,系统只认出 6 条;或者容量数字对了,但性能明显不对。

原因:每个平台的 DIMM 插槽都有规定的填充顺序。这个顺序不是美观问题,是通道对称性问题——跳着插会破坏通道配平,内存控制器无法建立完整的交织。

后果

  • 轻的:不能交织,内存带宽打折,容量数字正常,所以没人发现
  • 重的:某些条子直接不被识别

做法:按主板丝印或维护手册上的填充顺序装。多数平台会在主板上印A1/B1/C1/D1 这样的标识,或者用不同颜色的卡扣区分优先插槽。不要凭感觉。

换单条的时候也一样:拆下来的条子装回原来的槽位。临时插到旁边一个「反正是空的」槽位里,是这类问题最常见的来源。

这类问题不报错,只是悄悄损失性能。做一次容量和频率的核对就能发现。

三、内存不报错,机器却隔三差五重启

现象:没有明显的硬件告警,但系统不定期宕机或重启,找不到规律。

这是三类里最难查的。

可能原因:不可纠错错误(Uncorrectable Error,UCE)。ECC 能纠正单比特错误,纠正不了多比特错误。碰到 UCE,系统为了不让错误数据扩散,会直接触发宕机。

为什么难查:宕机发生在一瞬间,操作系统往往来不及把日志写盘。你在 /var/log 里什么都找不到,只看到一次干净的重启。

从哪里查BMC 的硬件事件日志(iDRAC / iLO / IMM / XCC,各家叫法不同)。BMC 是独立于操作系统运行的,宕机不影响它记录。UCE 事件通常会留下一行,带 DIMM 槽位信息。

定位不到具体槽位怎么办:用交叉法——拆掉一半,跑一段时间;不再宕机就说明问题在拆掉的那一半里,再二分。这个过程慢,但比继续等下一次宕机快。

备件提示:过保机型的内存往往已经停产。提前备一条放在手边,比出事之后现找快得多——尤其是当你要用交叉法排查,手里得有一条确定是好的。

排查顺序

症状先看哪里判断依据
性能下降,日志有 CEBMC 日志 CE 计数增长速度,不是绝对值
容量不对或性能不对主板填充顺序对照维护手册
偶发宕机,OS 日志干净BMC 硬件事件日志找 UCE 记录和槽位
BMC 也没记录交叉法二分逐步缩小范围

三类里有两类要看 BMC 日志。如果你的机房还没有把 BMC 日志接进集中监控,这件事的优先级应该排得很靠前——它是唯一一个在机器宕机时还在工作的记录者。

关于备件

内存的互换性比硬盘还细:速率、rank、颗粒组织、RDIMM/LRDIMM,任何一项对不上都可能白买。我们的料号库记到 PC4-xxxx 和 xRxx 这一级,并记录可替代料号。

常见平台的 DDR4 RDIMM 多数为库房常备。可以在备件料号速查里按品牌或料号直接搜。


本文描述的是这类设备的常见故障模式,不是某一台机器的具体案例。

Discover more from 七小服 Seven Small Services

Subscribe now to keep reading and get access to the full archive.

Continue reading

七小服(北京)网络科技有限公司 · 京ICP备16066256号-1