知识卡片
系统越老越该疑心罕见故障
内容
小而新的系统里,异常表现大概率是常见缺陷——听到马蹄声先想马而不是斑马;但一个运维多年、规模巨大的系统里,工程师早已把常见问题一个个修掉了,剩下反复出现的恰恰是那些原本极其罕见的边缘情况——不可纠正的内存位翻转单芯片概率仅0.1%,放到40万个RAM芯片的规模下,一年就可能发生400起。调试策略要跟着系统的年龄和规模调整:面对年轻系统先怀疑常见原因,面对久经考验的大规模系统,反而要认真对待那些”这也太巧了吧”的假设。
参考来源
- 位置:《Google系统架构解密:构建安全可靠的系统》第15章《调查系统》15.1.2节区分马与斑马(源文件:`../OREILY动物书合辑 图灵新版/_epub-src/text/part0014_split_121.html`)
- 结论依据:原文引用"日复一日,马都被找到了,于是只剩下斑马了",并用25000台主机、40万个RAM芯片、每芯片每年0.1%不可纠正错误率推算出每年可能发生400起错误,明确总结"对小而新的系统来说,要注意常见的缺陷……对相对陈旧、大型且稳定的系统来说……要注意罕见的缺陷"。
- 原始内容:假设一个云服务使用25000台主机,使用的内存可能会跨400000个RAM芯片。考虑到每个芯片每年发生不可纠正错误的概率为0.1%,如此规模下的服务每年可能会发生400起错误……对小而新的系统来说,要注意常见的缺陷。而对相对陈旧、大型且稳定的系统来说……要注意罕见的缺陷。