- 新手们常常不能有效地进行故障排查,是因为这个过程理想情况下同时需要两个条件。
(a)对通用的故障排查过程的理解(不依靠任何特定系统)。
(b)对发生故障的系统的足够了解。 - 通用的故障排查流程
从理论上讲,我们将故障排查过程定义为反复采用假设-排除手段的过程:针对某系统的一些观察结果和对该系统运行机制的理论认知,我们不断提出一个造成系统问题的假设,进而针对这些假设进行测试和排除。
造成低效的故障排查过程的原因通常集中在定位(triage)、检查和诊断环节上,主要由于对系统不够了解而导致。
- 常见陷阱:
(a)关注了错误的系统现象,或者错误地理解了系统现象的含义。这样会在错误的方向上浪费时间。
(b)不能正确修改系统的配置信息、输入信息或者系统运行环境,造成不能安全和有效地测试假设。
(c)将问题过早地归结为极为不可能的因素(例如认为是宇宙射线造成数据变化,虽然有可能发生,但是并不应该在解决问题初期做这个假设),或者念念不忘之前曾经发生过的系统问题,认为一旦发生过一次,就有可能再次发生。
(d)试图解决与当前系统问题相关的一些问题,却没有认识到这些其实只是巧合,或者这些问题其实是由于当前系统的问题造成的。(比如发现数据