Skip to content

如何做大模型服务的容量估算和压力测试?

3 分钟速学卡

30 秒口述: 我会先按任务类型统计到达率、峰值系数、输入与输出 Token 分布、同步或流式模式和目标 SLO,再用 Little's Law 粗估稳态并发,用目标硬件或供应商配额做实测校准。压测必须覆盖 Prefill 与 Decode、长短请求混合、突发流量、缓存冷热、取消、限流和故障降级,不能只发同长度请求看平均 QPS。最终以 TTFT、端到端 P95/P99、tokens/s、队列、显存、错误、降级和单位成功任务成本共同确定安全容量与扩容阈值。

  • 本质: 容量公式只给量级,混合负载和故障压测才给生产安全线。
  • 核心机制: 从任务、峰值、Token 分布和 SLO 建模;分开观察 Prefill、Decode、排队和显存。
  • 关键判断: 压测覆盖混合长度、突发、取消和故障;用尾延迟、质量与成本共同定义安全容量。
  • 项目落地: 压测方案:从单请求基线开始,逐级增加并发,混入短问答、长上下文和长输出;再加入 429、上游抖动、节点退出与客户端取消。
  • 边界与坑: “QPS 乘平均耗时就是容量”:这只是稳态平均并发量级,不含峰值和资源约束;“GPU 利用率越高越好”:过高可能导致排队、显存不足和尾延迟恶化。

目录

面试官为什么问

这道题考察量级估算、工作负载建模、模型推理特性和生产压测方法,重点是能否从平均值走向真实分布与安全余量。

小白先看懂

设计高速公路不能只问“一小时来了多少辆车”,还要看早高峰突发、卡车与小车比例、收费站速度和事故封道。请求率对应车流,输入输出 Token 对应车辆长度与行驶距离,排队对应拥塞,GPU 显存对应道路空间。

Little's Law 可用 平均并发 ≈ 到达率 × 平均停留时间 粗估稳态量级。类比不能替代压测,因为模型 Prefill、Decode、Batching 和 KV Cache 会让不同长度请求互相影响。

主题图与核心原理

图:教学图片|如何做大模型服务的容量估算和压力测试?

替代文本: 围绕“如何做大模型服务的容量估算和压力测试?”组织的中文教学图,通过分区、箭头和标签解释核心机制。

如何做大模型服务的容量估算和压力测试?教学图片

读图结论: 平均值不能代表峰值;P99 与质量决定是否可用。

这张图片用于建立主题机制的直觉。精确公式、参数、失败分支和事实边界仍以正文与 Mermaid 为准。

图片生成记录: model=gpt-image-2generated=2026-07-15prompt_version=v1reviewed=2026-07-16review_basis=user-confirmed查看生成 Prompt

图:容量估算从工作负载到安全阈值

替代文本: 请求分布、Token 长度与 SLO 先形成容量假设,再通过阶梯并发和故障压测校准,最后输出安全容量、限流和扩容阈值。

图表加载中…

读图结论: 公式给出量级,真实工作负载压测决定安全容量,故障场景决定余量。

对外部 API,还要把组织配额、并发限制和限流规则视为容量上限;对自部署模型,要分别观测 Prefill/Decode、Batch、KV Cache、显存和 GPU 利用率。平均并发不能直接代表峰值容量。

项目和生产视角

压测方案: 从单请求基线开始,逐级增加并发,混入短问答、长上下文和长输出;再加入 429、上游抖动、节点退出与客户端取消。达到目标吞吐但 P99、质量或成本超标,仍不算通过。

压测环境、模型、量化、硬件、批策略、数据分布与版本都要记录。线上用队列等待、显存余量、TTFT 和错误预算触发扩容或降级,而不是等 CPU 达到固定百分比。

常见错误回答

  • “QPS 乘平均耗时就是容量”:这只是稳态平均并发量级,不含峰值和资源约束。
  • “GPU 利用率越高越好”:过高可能导致排队、显存不足和尾延迟恶化。
  • “压测达到最大 QPS 就结束”:还需验证质量、取消、恢复、成本和安全余量。

递进追问

  1. Prefill 与 Decode 为什么要分开建模?
  2. 如何构造长短请求混合的压测分布?
  3. TTFT 正常但总耗时恶化,应先看什么?
  4. 自部署和外部 API 的容量边界有何不同?
  5. 如何从压测结果得到限流和自动扩容阈值?

关联阅读

总结

一句话记忆: 容量公式只给量级,混合负载和故障压测才给生产安全线。

  • 从任务、峰值、Token 分布和 SLO 建模。
  • 分开观察 Prefill、Decode、排队和显存。
  • 压测覆盖混合长度、突发、取消和故障。
  • 用尾延迟、质量与成本共同定义安全容量。