BENCHMARK REPORT

vLLM 吞吐并发压测报告

Qwen3.6-27B / 4×NVIDIA L20 48G / Tensor Parallelism=4

📅 2026-07-24 🖥️ 192.168.0.27 (atc-ai-01) 🔧 vLLM + Docker
吞吐天花板
755
tok/s @ 并发80
性价比拐点
518
tok/s @ 并发30
单请求速度
46.4
tok/s @ 并发1
并发加速比
16.3x
并发80 vs 1
测试环境
服务器192.168.0.27 (atc-ai-01)
操作系统Ubuntu 24.04 LTS
GPU4 × NVIDIA L20 48GB
推理框架vLLM (Docker)
模型Qwen3.6-27B (FP16)
Tensor Parallelism4
GPU 显存利用率0.72
最大模型长度64K (65536)
容器名vllm-qwen
服务端口8000
输入长度512 tokens
输出长度512 tokens (ignore_eos)
每轮请求数100 (并发1-10为20)
压测工具asyncio + httpx
吞吐量与延迟趋势
吞吐量 (tok/s) 平均延迟 (秒) 最大延迟 (秒)
压测趋势图
完整压测数据
并发数 吞吐 (tok/s) 均延迟 (s) 最大延迟 (s) RPS 达天花板 区域
核心发现

吞吐天花板约 750 tok/s,在并发 50 时达到 746 tok/s(天花的 99%),并发 80 仅多 1.2% 但延迟增加 26%。
性价比拐点在并发 30:518 tok/s 已达天花板 69%,均延迟 26.4s、最大延迟 30.8s 在可接受范围。
线性扩展区间为并发 1-20:吞吐随并发近线性增长(R²>0.99),10 倍并发带来 10 倍吞吐。
并发超过 50 无意义:GPU 计算已饱和,额外请求只增加排队延迟,吞吐基本不再增长。

生产配置建议
💬
交互聊天 (Dify)
推荐并发上限 5-10。延迟 14-18 秒内可接受,吞吐 177-289 tok/s 足够支撑多用户同时对话。实际聊天回复通常 100-200 tokens,延迟按比例缩短至 3-7 秒。
5-10
并发
289
tok/s
18s
均延迟
⚙️
API 对外服务
推荐并发上限 30。吞吐 518 tok/s,最大延迟 31s 在可忍受范围。适合需要平衡吞吐和用户体验的 API 服务场景,可同时服务较多用户。
30
并发
518
tok/s
31s
最大延迟
📦
离线批处理
推荐并发 50。吞吐 746 tok/s 接近天花板,牺牲延迟换最大吞吐。适合后台批量推理、数据集生成等对延迟不敏感的场景。超过 50 没有意义。
50
并发
746
tok/s
42s
最大延迟
测试方法

压测脚本:基于 Python asyncio + httpx 的异步并发压测脚本,通过 Semaphore 控制并发数,每轮发送固定数量的 completions 请求。

请求参数:使用 /v1/completions 端点,输入为 512 个 "Hello" 重复 token,输出强制 max_tokens=512ignore_eos=True,确保每个请求生成完整的 512 tokens。

指标定义:
吞吐量 = 所有请求输出 tokens 总和 / 墙钟时间
均延迟 = 单个请求端到端时间的算术平均
最大延迟 = 所有请求中最慢的那个
RPS = 完成请求数 / 墙钟时间
墙钟时间 = 从第一个请求发出到最后一个请求返回的总时间

注意事项:并发 1/5/10 每轮 20 个请求(快速测试),并发 20/30/50/80 每轮 100 个请求(完整测试)。所有测试均使用 temperature=1.0 避免缓存命中。延迟数据为 512 tokens 满载输出,实际聊天场景下回复通常 100-200 tokens,延迟会按比例缩短。