知识卡片

相关不等于因果的排障陷阱

普通读书笔记卡 · 1595.b

内容

排障中最容易踩的坑之一,是把同时出现的两个现象误判为因果——网络丢包和硬盘损坏可能同时发生, 但真正原因或许是供电故障同时触发了两者,二者互不为因果。系统规模越大、监控指标越多,纯属 巧合的同时发生现象就越常见。应优先怀疑最常见、最简单的解释(听到蹄声先想马而非斑马)。书中 案例:App Engine 延迟上升一度被归因为merge_join用量增多,后证实只是伪相关,真正根源是权限 缓存对象未清理膨胀。

参考来源

- 位置:《SRE:Google运维解密》第12章《有效的故障排查手段》(源文件:_epub-src/OEBPS/Text/0009_0003.xhtml) - 结论依据:原文用网络丢包与硬盘损坏的例子说明相关不等于因果,并在App Engine案例分析中记录了merge_join用量与延迟的相关性最终被证实为伪相关。 - 原始内容:相关性(correlation)不等于因果关系(causation)……集群中的网络丢包现象和硬盘损坏现象可能是由同一个原因造成的,比如说供电故障。但是网络丢包现象并不是造成硬盘损坏现象的原因,反之亦然……这同时暗示了我们观察到的merge_join和延迟上升只是伪相关,关于不正确的索引使用造成延迟上升的理论是完全错误的。