本周实战

作业13 · 值班 Runbook(429 / 5xx / 超时)

一页值班手册:上游限流、5xx、超时怎么处理。

作业13 · 值班 Runbook(一页)— 上游 429 / 5xx / 超时

适用:LiteLLM / 模拟上游 / vLLM 等 OpenAI 兼容链路。打印贴值班群即可。


0. 先判级(30 秒)

级别现象动作
P1大面积失败 / 业务不可用立刻切 backup 或降级公告 + 拉相关人
P2部分 429/超时,成功率下降限流/降并发 + 查 upstream
P3偶发错误记录 Trace,观察 15 分钟

快速探测:

bash
# 换成本环境地址
curl -sS -o /tmp/r.json -w "%{http_code} %{time_total}\n" \
  http://127.0.0.1:4010/v1/chat/completions \
  -H "Authorization: Bearer sk-hw13-test-4010" \
  -H "Content-Type: application/json" \
  -d '{"model":"primary","messages":[{"role":"user","content":"ping"}],"max_tokens":8}'

1. 上游返回 429(限流 / 过载)

含义:上游或网关认为当前并发/QPS 超限。

处理顺序:

  1. 确认是哪一层 429:客户端→LiteLLM,还是 LiteLLM→上游(看响应 body / LiteLLM 日志)。
  2. 立即:业务侧降低并发;暂停非核心压测/批跑。
  3. 短时:把流量切到虚拟模型 backup(或 fallback 已配置则确认是否已切)。
  4. 根因:查上游排队、GPU 利用率、是否被刷;对照作业13「安全并发建议」下调常态并发。
  5. 恢复标准:连续 5 分钟无 429,且成功率 ≥ 99%,再逐步恢复流量。

不要:在 429 高峰无脑加倍重试(会雪崩)。


2. 上游返回 5xx(500/502/503)

含义:上游进程异常、反代错误、短暂不可用。

处理顺序:

  1. 看错误是否集中在某一 model / 某一 upstream。
  2. 立即:切换 backup;对 primary 停止新流量。
  3. 查上游进程/容器是否存活;重启策略按变更窗口执行(先通告)。
  4. 查最近发布/配置变更;必要时回滚 LiteLLM config。
  5. 恢复标准:primary 单探活连续成功 3 次,再灰度切回。

3. 超时(客户端 timeout / gateway timeout)

含义:排队过久、模型生成过慢、网络不通、超时阈值过短。

处理顺序:

  1. 区分:连接超时 vs 读超时(是否已建连)。
  2. 查上游 in-flight / waiting 队列;GPU 是否打满。
  3. 立即:降并发、降 max_tokens、非关键请求改异步/排队。
  4. 核对超时配置:客户端 < LiteLLM < 上游,避免「下层还在跑、上层已放弃」。
  5. 恢复标准:p95 延迟回到基线附近,再升并发。

4. 值班话术(可复制)

text
【推理告警】时间:____  模型:primary/backup
现象:429 / 5xx / 超时(选一)  比例:____
已做:降并发 / 切 backup / 查进程(选填)
需要:____(扩容 / 重启审批 / 业务方限流)

5. 升级与记录