性能故障(Performance Failure)
系统没有宕机,错误率也很低,但它就是慢——慢到用户无法接受。
性能故障是一种特殊的故障:服务仍然在响应,但响应速度已经远远低于预期。用户感知到的不是「服务挂了」,而是「服务卡了」。
性能故障往往比崩溃故障更难诊断——崩溃故障有明确的错误日志,性能故障可能只是「慢了」,而「为什么慢」需要深入分析。
性能故障的定义
性能故障:系统响应时间显著高于正常水平,影响用户体验或业务功能。
性能故障的成因
资源类
应用类
外部依赖类
性能故障的特征
特征一:渐进式恶化
性能故障通常是逐渐恶化的,而不是突然发生:
特征二:与负载正相关
性能故障往往在高负载时更容易触发:
特征三:影响范围大
性能故障往往影响大量用户,不像崩溃故障那样只影响部分用户:
性能故障的检测
延迟异常检测
LatencyAnomalyDetector.java
Prometheus 告警规则
performance-alerts.yaml
性能故障的处理
快速止血:限流 + 降级
PerformanceDegradation.java
根因定位:APM 链路分析
性能故障的预防
容量规划
capacity-planning.yaml
压力测试
定期进行压力测试,找出系统的性能瓶颈:
性能故障 vs 崩溃故障
本章总结
核心要点:
- 性能故障是响应慢到影响业务:系统没挂,但用户体验严重下降
- 性能故障通常是渐进式的:P50/P99 延迟逐渐上升是预警信号
- 性能故障影响范围大:所有用户都会感受到变慢
- 限流 + 降级是快速止血手段:同时需要排查根因
- 容量规划和压力测试是预防关键:知道系统上限才能从容应对
理解了各种故障类型,接下来我们看如何检测这些故障。