
使用
SLO
来提高可靠性
|
115
建立传统的告警机制来监控用户体验,意味着系统工程师必须选择任意的常数来预测何
时体验不佳。例如,这些告警可能会在“
10
个用户经历了缓慢的页面加载时间”或“第
95
百分位数的请求持续超过一定的毫秒”时触发。在一个基于指标的方法中,系统工程
师需要划分出哪些确切的静态措施表明正在发生不可接受的问题。
然而,由于用户在访问过程中可能会在不同的地区以不同形式接入,所以导致一天中系
统的性能变化是非常大的。在流量拥堵期间,当你可能有数百个并发会话时,
10
个用户
经历缓慢的页面加载时间可能是一个重要的指标。但是,当你可能有数以万计的并发会
话正在运行时,这种重要性会在负载高峰期急剧下降。
记住,在分布式系统中故障是不可避免的。小的瞬时故障总是在你没有注意到的情况下
发生。常见的例子包括一个失败的请求,后来重试成功;一个关键的进程启动失败了,
直到它被路由到一个新配置的主机上才启动成功;或者一个服务没有响应了,直到它的
请求被路由到一个备份服务上。这些类型的瞬时故障所带来的额外延迟可能会在流量高
峰期融入正常的操作,但在流量低的时期,
p95
响应时间对单个数据点会更加敏感。
同样,这些例子也说明了基于时间的指标的粗糙性。比方说,
p95
的响应时间是以
5
分钟
的间隔来衡量的。每隔
5
分钟,后
5
分钟间隔的性能报告一个值,如果超过了静态阈值,
就会触发告警。如果这个值超过了阈值,整个
5
分钟的间隔就被认为是坏的(反之,任何
没有超过阈值的
5
分钟间隔都被认为是好的)。在这种类型的指标上发出告警,会导致假 ...