首页/AI/大模型部署与运维速查/vllm bench serve:服务端压测

vllm bench serve:服务端压测

vLLM 自带基准:vllm bench serve 对 OpenAI 兼容端点发压,输出吞吐与延迟分位,支持控制请求数与到达速率,是容量标定的起点工具。

服务端压测工具是什么

vLLM 自带基准工具 vllm bench serve,对 OpenAI 兼容端点发压,输出吞吐与延迟分位,并支持控制请求数与到达速率。它是容量标定的起点工具:先测单实例基线,再逐档提高并发找饱和点。压测的价值取决于数据是否贴近生产,参数取值以所用版本文档为准。

基本信息

工具vllm bench serve(随 vLLM 版本演进)
压测目标任意 OpenAI 兼容端点,不限于 vLLM 自身
关键参数请求数、到达速率、后端类型、数据集,参数名以版本文档为准
主要输出吞吐与 TTFT/TPOT 等延迟分位
适用范围容量标定、配置对比、升级回归

典型使用场景

  • 单实例基线:拿到这台机器在目标长度分布下的吞吐与延迟数字
  • 扫并发档位:从 1 逐档加到 4/8/16/32/64,找出吞吐增幅开始放缓的饱和点
  • 配置对比:量化档位、张量并行度、窗口大小各改一项,看结论是否支持改动
  • 升级回归:引擎或驱动升级前后跑同一套数据,确认没有性能回退
  • 容量规划输入:把单实例实测吞吐作为换算链条中的分母

典型用法

典型用法
vllm bench serve --backend openai-chat \
  --base-url http://127.0.0.1:8000 --model <模型名> \
  --num-prompts 500 --request-rate 20

# 并发档位逐档跑:1 / 4 / 8 / 16 / 32,找吞吐增幅放缓的拐点
# 对比实验只改一个变量:换了量化就不要同时改窗口
# 先跑一轮热身丢弃:模型预热与缓存建立会污染第一批数据

必须写清的压测条件

项目为什么重要常见遗漏
长度分布长输入压 prefill,长输出压 decode只用一种长度造数据
并发与到达速率同一实例在不同并发下结论不同未记录到达速率
请求数与预热样本太少结论不稳直接取第一批数据
模型与量化档位决定分母是否可比未记录 revision
压测数据要贴近真实画像:用与生产同构的输入输出长度分布,否则数字好看但上量后表现完全不同。
结论落在分位上:报告里写清 P50/P95/P99 与对应的并发档位,只报平均值会让长尾问题在扩容后集中暴露。

易错点

  • 压测与生产用不同长度结构:数字好看、上量打脸,数据要贴近真实画像
  • 不记录并发档位就对比配置:两组数据条件不同,结论无法归因到被改的那个变量
  • 在共享卡或有其他进程时段压测:结果不可复现,排查时互相矛盾
  • 只报平均延迟:P95/P99 才是真正影响体验的部分,也是扩容决策的依据

数据来源与参考

  • vLLM 官方文档:Benchmarking(docs.vllm.ai)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌