1. 限流熔断概述

1.1 为什么模型API需要限流与熔断

大语言模型(LLM)与推理类模型API具有显著的计算密集性和响应不确定性。单次推理可能消耗数十至数百毫秒的GPU时间,且请求量突发时,后端资源极易被击穿。缺乏限流与熔断机制时,系统会面临以下风险:

  • 资源耗尽:无限制的并发请求占满GPU显存与计算槽位,导致新请求排队超时或OOM崩溃。
  • 级联雪崩:上游服务因下游模型API超时而重试,重试流量进一步压垮后端,最终整个调用链瘫痪。
  • 成本失控:按token或按调用次数计费的模型API,突发流量直接转化为高昂账单。
  • SLA违约:高延迟或错误率超过客户容忍阈值,导致业务流失与赔偿。
核心洞察:模型API的限流熔断不是“可选项”,而是保障系统稳定性与成本效益的强制性基础设施。

1.2 核心概念与目标

概念 定义 低延迟场景下的关键目标
限流(Rate Limiting) 控制单位时间内允许通过的请求数量或并发数,防止系统过载。 将P99延迟控制在模型推理时间+合理排队时间以内(通常<500ms)。
熔断(Circuit Breaking) 当错误率或延迟超过阈值时,快速拒绝请求,给下游恢复时间。 熔断响应时间<10ms,避免调用方线程阻塞等待超时。
降级(Degradation) 在过载时返回降级结果(如缓存、默认回复),而非直接报错。 降级路径延迟必须低于正常推理路径,通常<50ms。
预热(Warm-up) 服务启动或扩容后,逐步提升流量,避免冷启动导致超时。 预热期内允许的请求量平滑增长,不触发熔断误判。

限流与熔断的最终目标可归纳为:

  1. 保护后端:确保模型服务不会因过载而崩溃。
  2. 保障公平:在多个租户或业务线之间合理分配推理资源。
  3. 快速失败:在无法处理时立即返回明确错误,而非让调用方长时间等待。
  4. 自动恢复:后端恢复后,流量自动回切,无需人工介入。

1.3 低延迟场景下的挑战

模型API的限流熔断与传统的微服务限流有显著差异,主要体现在以下挑战:

挑战维度 传统API限流 模型API限流
响应时间分布 相对稳定(通常<50ms) 高度可变(50ms~10s+),受输入长度、模型大小影响
资源消耗 CPU/内存,可预测 GPU显存+算力,并发数受显存容量严格限制
限流粒度 QPS或并发数 需同时考虑QPS、并发数、输入token数、输出token数
熔断敏感性 错误率>50%时触发 延迟轻微升高(如P99从200ms升至400ms)即需干预
预热需求 通常不需要 GPU算子编译、显存分配需要预热,否则前几次请求极慢
低延迟场景的特殊约束:模型API的限流熔断决策必须在微秒到毫秒级完成。如果限流器本身引入超过5ms的延迟,就违背了低延迟的初衷。因此,算法选择(如令牌桶 vs 滑动窗口)和数据存储(本地内存 vs 分布式Redis)需要精心权衡。

下图展示了模型API在无保护、仅限流、限流+熔断三种状态下的延迟表现对比:

模型API延迟对比:无保护 vs 限流 vs 限流+熔断 无保护 请求量:无限制 P50延迟:180ms P99延迟:3200ms 错误率:23% GPU利用率:98% OOM风险:高 ❌ 不可接受 仅限流 请求量:受控 P50延迟:120ms P99延迟:450ms 错误率:5% GPU利用率:75% OOM风险:低 ⚠️ 延迟仍偏高 限流+熔断 请求量:动态调节 P50延迟:95ms P99延迟:210ms 错误率:0.5% GPU利用率:82% OOM风险:极低 ✅ 低延迟稳定 数据基于7B模型、batch_size=1、输入512token、输出128token的压测环境
实践要点:在低延迟模型API场景中,限流与熔断必须协同工作。仅限流无法应对后端偶发变慢导致的延迟抖动;仅熔断无法防止持续过载。两者结合才能实现P99延迟稳定在200ms以内的目标。