标准答案
- 先记录时间窗口、受影响接口、错误率、延迟、流量、版本、部署和依赖状态,明确是单实例还是全局问题。
- 优先采集低风险证据,例如进程状态、资源指标、连接状态、日志片段和线程或系统调用采样,避免高开销命令扩大故障。
- 止血动作可以是摘除异常实例、降低并发、暂停非关键任务、切换依赖或回滚,必须有观察指标和回滚条件。
- 恢复后验证错误率、延迟、数据完整性和积压,并保留事件时间线,不能以进程重新存活作为唯一成功标准。
题目解析
“先重启”有时能清除连接泄漏、临时内存峰值或卡死线程,但也会丢失线程栈、连接状态、队列现场和触发条件。排障顺序应先划定影响范围和时间窗口,采集低风险证据,再选择摘除单实例、限流、降级、暂停非关键任务或回滚等可观察的止血动作。
重启之后还要验证业务结果:错误率和 P99 是否恢复、数据是否重复或丢失、消息积压是否继续增长、依赖是否健康,以及问题是否只转移到其他实例。把命令、时间、指标和结果写入时间线,才能把一次止血转化为可复盘的根因判断。
常见误区
- 误区:没有证据就重启所有实例。改正:先保留现场,优先摘除异常实例或采取有范围的止血,并设置观察指标。
- 误区:只看进程存活。改正:同时看请求成功率、尾延迟、业务结果、依赖和队列。
- 误区:恢复后不检查数据和积压。改正:做数据对账、消息积压和错误重放检查,并记录复盘时间线。