ECC 能纠错也有边界:单 bit 之外发生了什么
SECDED 的硬限制
标准 ECC(SECDED)的能力是:单比特错,悄悄纠掉;双比特错,发现并报上来;三位及以上,既可能纠错也可能漏报。工程上更要注意的是“相邻多位突发”——当一颗颗粒的局部区域因电压或温度出问题,常常不止一个比特同时错,这时 ECC 可能从“纠错”变成“误纠”或“上报不可纠正错误(UE)”。
UE 对服务器意味着什么
不可纠正错误在严肃的服务器平台会触发内存告警、页屏蔽,严重的直接 Panic。也就是说,一旦错误超出 ECC 边界,后果不是“慢一点”,而是“当场罢工”。对数据库、虚拟化、AI 训练这类长任务,一次 UE 可能毁掉几小时的进度。
为什么普通测试容易漏掉边界外的错误
普通服务器开机自检和短时跑分,几乎碰不到 ECC 边界——因为默认电压、常温、短时,错误率极低。但真实机房是另一种环境:电压有纹波、机柜有热点、任务一连跑几周。边界外的错误恰恰在这些条件下才密集出现。只在“舒服环境”里点过亮的条子,到了“真实环境”才可能第一次撞上 UE。
这也回到核心命题:二手服务器验不出合格,原因之一正是它只模拟了“舒服环境”。
要点
- ECC 边界之外是 UE,后果是停机而非降速。
- 多位突发错误在温度/电压异常时最易出现。
- 合格测试要主动把条件推到边界,逼出隐藏错误。