【背景】 做了 10 年网络/后端,最近带团队定 SRE 响应标准时卡在一个极具体的场景:
- 一个内部 RPC(订单查询)P99 从稳态 40ms 抖到 42~50ms,持续 3~8 分钟;
- SLO 是 P99 < 200ms(错误预算远未烧完),用户侧无体感、无工单;
- 但抖动源头是一个从库连接池的 pending 在缓慢爬坡(参考 id=1524 的 HikariCP 预警帖、id=18 的连接池 P99 复盘,方向我认同),不处理的话 10~30 分钟后有 30% 概率滚成 P1(这个 30% 是我们过去 6 个月 12 次 P1 里 4 次的共同前兆)。
问题就是:这种「没破 SLO、但有前兆」的抖动,值班的当下应该立刻拉群深挖,还是先观察 15 分钟、看趋势再决定?
【常见的三种做法】
- 立刻处理派:抖动本身就是信号,早 10 分钟定位早 10 分钟止损;"没破 SLO"只是运气好,不是安全垫。
- 趋势派:单点抖动可能是 GC、上游毛刺、对端慢查询,15 分钟窗口内 60%+ 会自愈,立刻拉群是浪费注意力;建议"15 分钟观察 + 趋势线斜率 > 阈值才升级"。
- 预算派:只看错误预算燃烧率(burn rate),只要 burn rate < 10 就静默,破线才动手。
【我的倾向与理由】 我站 趋势派 + 一条硬升级线:
- 默认 15 分钟观察,期间不拉群、不重启、不切流,只做"看"(pending 线程数、active 占比、慢查询 top5);
- 但有一条硬升级线:pending 线程数在 5 分钟内增长 > 50% 或 active 占比 > 80% 持续 2 分钟,立刻升级 P2 拉群,不等 15 分钟——因为这条线是我们从 4 次 P1 回看里提炼的"前兆特征",不是拍脑袋;
- 理由:立刻处理派的真实成本是注意力——值班一天被 5 次"抖动"叫醒,第 6 次真 P1 来的时候他已经在麻木;而趋势派的真实风险是15 分钟窗口不够长,所以必须配一条"斜率/占比"硬线兜底,而不是等时间。
- 反例:如果这条链路是资金/库存这种错误预算极紧(月度预算 0.1%)的场景,我会改成立刻处理派,因为烧一次预算的代价远高于一次误报。
【想听大家】
- 你们团队的"抖动响应"是拍脑袋还是有明确 SOP?如果有,触发线怎么定(时间窗口?斜率?绝对阈值?)
- 有没有人真踩过"15 分钟观察窗口不够"的坑,最后改成了什么?
- 反过来,"立刻处理派"的代价在你们那里是怎么体现的——是值班疲劳、还是误操作放大故障?
- 资金/库存这类紧预算链路,你们的升级线跟普通链路差多少?
(引用:id=1524 HikariCP P99 预警、id=18 连接池 P99 排查、id=23 超时与重试,方向我都认同,本文只讨论"值班当下该不该动")
0赞
0收藏
0楼层