返回博客

vLLM / Benchmark / Docker

裁剪 vLLM benchmark 客户端:只保留在线服务压测能力

记录一个只面向 OpenAI 兼容服务压测的精简 benchmark 客户端。

标准 vLLM 环境包含推理引擎、CUDA 组件、分布式依赖和服务端能力。纯客户端压测场景只需要请求生成、并发调度、延迟统计和结果汇总,因此可以把镜像大幅裁剪。

项目概览

项目结构保留 Python 包、CLI 入口、请求生成器、异步 HTTP 客户端、统计模块和 mock OpenAI 服务测试。

用途是为已经运行的 OpenAI 兼容服务提供轻量压测客户端。应用场景包括模型网关压测、服务迁移前后吞吐比较、不同采样参数下的延迟观察。

客户端职责

客户端保留 vllm bench serve 风格的参数入口,目标是连接已经运行的 OpenAI 兼容服务。请求体由 prompt 生成器和 tokenizer 共同构造,参数覆盖模型名、输入长度、输出长度、并发数、请求数量和采样设置。

异步 HTTP 层负责调度请求并记录首 token 延迟、总延迟、成功率、吞吐和错误分布。统计模块只消费结构化事件,便于后续扩展输出格式。

验证方式

项目配套一个 mock 服务,用于在无真实模型服务时检查请求格式、并发控制和统计计算。真实服务压测与 mock 验证共用同一客户端入口,减少环境差异。

实现原理是兼容上游 benchmark 命令习惯,同时删除推理执行部分。请求生成支持随机文本和 ShareGPT 风格样本,异步调度器记录首 token 延迟、总延迟、错误类型和吞吐,再输出结构化统计。