Brownout 模式:当你的 LLM 供应商响应迟缓而非宕机时
凌晨 3 点因为宕机而把你吵醒的告警其实是简单的。供应商返回了 40 分钟的 503 错误,你的回退机制生效了,运维手册(runbook)启动了,复盘报告(post-mortem)几乎可以自动完成。而那些没有吵醒你的告警——那些在所有仪表盘都显示绿色的情况下,让你的支持队列在 6 小时内堆满的告警——才是渐变故障(brownout)。供应商的 API 仍然有响应。状态页依然显示“运行正常(operational)”。你的 p99 延迟已悄然从 2.1 秒漂移到 14 秒,错误率从 0.1% 上升到 4%,而唯一察觉到的人是那些已经流失的用户。
供应商的可用性并不是非黑即白的二元状态。大多数团队编写的回退逻辑——“如果供应商宕机,则切换到备用方案”——本质上是用一个只有两种状态的状态机去应对一个连续变量,当供应商处于“惨淡运行”而非“彻底宕机”的状态时,这种机制根本不会触发。为渐变故障(brownouts)而设计是一个与处理宕机完全不同的设计问题,我所见过的几乎每一个生产环境中的 Agent 调度框架在发布时都没有解决这个问题。
