1. 限流熔断概述:为什么模型Serving需要限流与熔断

1.1 模型Serving面临的流量挑战

与传统的Web服务或微服务不同,模型推理服务(Model Serving)对流量波动极为敏感。一个突发的推理请求激增,不仅会导致响应延迟飙升,更可能引发GPU显存溢出(OOM)、推理引擎崩溃,甚至拖垮下游的向量数据库或存储系统。限流与熔断是保障模型服务稳定性的第一道防线。

核心痛点: 模型推理是计算密集型(尤其是LLM推理),单个请求的算力消耗远高于普通API调用。未经控制的突发流量会迅速耗尽GPU算力与显存,导致服务雪崩。

1.2 核心概念与目标

概念 定义 在模型Serving中的目标
限流(Rate Limiting) 控制单位时间内通过的请求数量或并发数,防止系统过载。 保护GPU算力与显存,确保推理延迟在SLA范围内(如P99 < 500ms)。
熔断(Circuit Breaking) 当错误率或延迟超过阈值时,快速切断对下游(或自身)的调用,避免级联故障。 防止推理引擎因OOM或死锁而持续失败,快速降级返回默认结果或错误码。
过载保护(Overload Protection) 综合限流与熔断,在系统接近容量极限时主动拒绝请求。 保持服务可用性,避免完全不可用(从“慢”变为“挂”)。

1.3 与微服务限流的异同

模型Serving的限流熔断策略继承自微服务架构,但存在显著差异。下表对比了关键区别:

对比维度 传统微服务限流 模型Serving限流
资源瓶颈 CPU、内存、网络IO、数据库连接池 GPU算力(TFLOPS)、显存(VRAM)、显存带宽
请求成本差异 请求成本相对均匀(如查询用户信息) 请求成本差异巨大(短文本 vs 长文本;简单分类 vs 大模型生成)
限流粒度 QPS(每秒请求数)、并发数 Token/s(输入+输出Token速率)、并发请求数、显存预留量
熔断触发条件 HTTP 5xx错误率、超时比例 推理错误率、GPU OOM事件、推理延迟(TTFT/TPOT)超阈值
降级策略 返回缓存数据、空结果、错误提示 返回默认推理结果、降级到小模型、排队等待、截断输入长度
关键认知: 模型Serving的限流不能只看QPS。一个请求的Token消耗量可能是另一个的100倍。因此,基于Token的限流(Token Bucket)比基于请求数的限流更精准。

1.4 模型Serving限流熔断架构概览

下图展示了一个典型的模型Serving限流熔断分层架构。流量从网关进入,经过多层防护后到达推理引擎。

模型Serving限流熔断分层架构图 模型Serving限流熔断分层架构 客户端 / 上游服务 API 网关层 全局QPS限流 · IP/用户维度限流 服务网格 / 代理层 熔断检测 · 重试策略 · 超时控制 推理引擎层(核心限流) Token/s限流 · 并发请求数 · 显存预留检查 GPU 算力 & 显存 实际执行推理 说明 每一层都可以独立配置 限流或熔断策略

1.5 为什么不能照搬微服务限流方案

  • 资源模型不同: 微服务限流通常基于CPU/内存使用率,而模型Serving必须考虑显存(VRAM)和算力(TFLOPS)。显存一旦耗尽,GPU进程会直接OOM被杀,无法像CPU那样通过swap缓解。
  • 请求成本非线性: 在LLM推理中,输入长度和输出长度直接影响显存占用和计算量。一个1024 Token的请求与一个4096 Token的请求,成本相差4倍以上。简单的QPS限流无法覆盖这种差异。
  • 熔断恢复更复杂: GPU OOM后,恢复通常需要重启推理容器或重新加载模型,耗时数秒到数分钟。微服务熔断的半开状态(Half-Open)试探策略,在模型Serving中需要更谨慎的恢复机制。
  • 批处理(Batching)的影响: 模型Serving通常使用动态批处理(Dynamic Batching)来提高吞吐。限流策略需要与批处理调度器协同,避免在批处理队列中堆积过多请求导致延迟爆炸。
常见误区: 直接将微服务的“最大并发数”限流策略套用到模型Serving上。由于GPU显存限制,模型Serving的最大并发数通常远低于微服务,且与模型大小、输入长度强相关。建议从“最大显存占用”反推并发上限。

1.6 限流熔断的核心指标

指标 描述 典型阈值(参考)
TTFT (Time to First Token) 从请求到达到生成第一个Token的延迟 P99 < 1s(在线服务)
TPOT (Time per Output Token) 每个输出Token的生成时间 P99 < 50ms(在线服务)
GPU 显存使用率 当前已用显存 / 总显存 触发熔断阈值:> 90%
推理错误率 返回错误(OOM、超时、模型异常)的请求比例 触发熔断阈值:> 5%
并发请求数 正在被推理引擎处理的请求数量 根据模型显存占用动态计算

1.7 本章小结