当前位置:首页 > 文章列表 > 科技周边 > 人工智能 > vLLM 连续批处理下的显存与吞吐取舍

vLLM 连续批处理下的显存与吞吐取舍

来源:17golang原创 2026-10-10 23:38:59 0浏览 收藏

vLLM 连续批处理的核心取舍不是“并发越高越快”,而是让调度器在显存能承受的范围内持续填充请求。实际配置应同时限制序列数和批次 token 数:先给模型权重与运行时留出余量,再逐级增加并发,观察吞吐、首 token 延迟(TTFT)、单 token 延迟(ITL)和显存峰值。只看一个 tokens/s 数字,很容易把排队延迟和 OOM 风险藏起来。

官方地址:https://docs.vllm.ai/

要点速览
  • gpu-memory-utilization 是每个 vLLM 实例可使用的显存比例,不等于安全的 KV Cache 容量。
  • max-num-seqs 控制请求条数,max-num-batched-tokens 控制一次调度的 token 总预算,两者必须一起调。
  • 生产环境以延迟预算为门槛,用并发阶梯压测找拐点,并保留长 prompt 和突发流量的回退配置。

先把显存预算拆成权重、KV Cache 与运行余量

启动时,显存首先要容纳模型权重;请求进入后,prompt 和已生成 token 的 KV Cache 会随序列数、上下文长度和输出长度增长。vLLM 用 PagedAttention 管理 KV Cache block,能减少连续内存分配带来的浪费,但它不会让显存变大。调高显存利用率只是在实例预算中给执行器更多空间,仍然需要为 CUDA 工作区、通信和波动留下余量。

排查显存问题时先区分三种现象:服务启动就失败,通常是权重或并行配置不够;运行一段时间后 OOM,重点看 KV Cache 与最大上下文;显存没有打满但延迟上升,则可能是批次 token 预算、CPU 调度或请求排队造成的。不要看到显存还有几百 MiB 就直接把并发翻倍。

vLLM 连续批处理的模型权重、KV Cache、运行余量与显存上限结构说明图
图1:vLLM 显存预算说明图,展示模型权重、KV Cache 与运行余量的边界关系。

用序列数与批次 token 数共同限制连续批处理

max-num-seqs 限制同一批最多容纳多少条请求,适合控制并发数量;max-num-batched-tokens 限制一次调度可处理的 token 总量,适合防止长 prompt 把短请求挤出调度窗口。两者取更严格的那个边界:即使序列数没有达到上限,只要 token 预算耗尽,也不能继续塞入请求。

# 先用保守值启动,再按压测结果逐级上调并发
vllm serve Qwen/Qwen3-8B \
  --gpu-memory-utilization 0.88 \
  --max-model-len 8192 \
  --max-num-seqs 16 \
  --max-num-batched-tokens 4096 \
  --enable-chunked-prefill
# 长 prompt 触发 OOM 时,优先降低 token 预算或上下文上限
# 不要只提高 gpu-memory-utilization 来掩盖 KV Cache 不足

短请求占比高时,可以先提高序列数;长 prompt 或输出较长时,先控制 token 预算更稳。V1 调度器可以把 prefill 和 decode 放在同一调度步骤中,但它们的压力不同:prefill 更偏计算,decode 更依赖显存带宽和 KV Cache。参数改变后必须用与线上相近的输入长度分布复测。

vLLM 连续批处理按序列数与 token 总预算调度 prefill 和 decode 的结构说明图
图2:连续批处理调度说明图,展示序列数上限与 token 总预算如何共同约束 prefill、decode。

用分阶段压测找到吞吐拐点

压测不要直接把并发拉到很大。固定模型、采样参数、输入长度分布和输出长度分布,按 1、2、4、8、16、32 的阶梯增加并发,每档等待服务稳定后记录总吞吐、TTFT、ITL、p95 延迟和显存峰值。vLLM 官方 CLI 提供 vllm bench serve 进行在线服务吞吐测试;离线批量场景则使用 vllm bench throughput。

# 用固定随机长度比较不同并发档位,避免只凭主观感受调参
vllm bench serve \
  --model Qwen/Qwen3-8B \
  --host 127.0.0.1 --port 8000 \
  --random-input-len 1024 \
  --random-output-len 256 \
  --num-prompts 128 \
  --request-rate 8
# 每次只改变一个变量,并记录 p95 TTFT、ITL 与 GPU 显存峰值

当并发继续增加而总吞吐增长很小、p95 延迟陡升或出现 preemption 时,就到达当前硬件和输入分布的拐点。生产值应选在拐点左侧,而不是选最高 tokens/s 的档位;如果 SLA 要求首 token 快,通常还要给 decode 请求保留调度预算。

生产配置要保留降级路径

建议把“正常档”和“保护档”作为两份可回滚配置。突发长 prompt 时,先限制入口的最大输入 token 或降低 max-num-batched-tokens;KV Cache 压力持续时,再考虑启用更低精度的 KV Cache 数据类型,但要对输出质量和兼容性做单独验证。chunked prefill 能把长 prompt 拆成更小的调度片段,不能替代请求限流。

上线清单至少记录:触发 OOM 或 p95 超阈值的指标、先调哪个参数、回退到哪组值、如何恢复正常档。这样显存与吞吐的取舍才是可运营的配置,而不是一次性的启动命令。

相关问题

显存利用率调到 0.95 就一定更快吗?

不一定。它可能增加 KV Cache 空间,但也减少运行时余量,导致峰值波动时 OOM;只有在压测确认余量足够时才值得上调。

应该优先提高 max-num-seqs 还是 max-num-batched-tokens?

短请求密集时优先观察序列数,长 prompt 或长输出时优先控制 token 总量;最终以 TTFT、ITL、p95 和显存峰值共同决定。

为什么并发提高后 tokens/s 不再增长?

常见原因是显存带宽、KV Cache block、CPU 调度或输入长度分布已经成为瓶颈。降低并发并观察延迟曲线,通常比继续堆参数更容易定位问题。

版本声明
本文转载于:17golang原创 如有侵犯,请联系study_golang@163.com删除
go build -trimpath 影响调试路径时的取舍go build -trimpath 影响调试路径时的取舍
上一篇
go build -trimpath 影响调试路径时的取舍
类型别名迁移后反射名称变化的兼容处理
下一篇
类型别名迁移后反射名称变化的兼容处理
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    543次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    516次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    500次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    485次学习
查看更多
AI推荐
  • PubMedQA数据集详解:生物医学问答基准、功能与应用指南
    PubMedQA
    深入了解PubMedQA生物医学问答数据集,涵盖其核心功能、使用方法及在临床决策、药物研发等场景的应用,助力提升NLP模型性能。
    409次使用
  • H2O EvalGPT:开源LLM大模型评估与排行榜工具
    H2O EvalGPT
    H2O EvalGPT是H2O.ai推出的开源LLM评估平台,提供详细的大模型性能排行榜、行业特定基准测试及A/B测试功能,助您快速选择最适合项目的高性能大语言模型。
    487次使用
  • LMArena是什么?伯克利AI模型评估平台使用指南与功能解析
    LMArena
    LMArena是加州大学伯克利分校推出的AI模型匿名评测平台。通过盲测投票机制,用户可对比不同大模型回答并生成实时排行榜,助力开发者优化模型及用户选择最佳AI工具。
    494次使用
  • 斯坦福HELM:大语言模型Holistic Evaluation整体评估框架详解
    HELM
    深入了解斯坦福推出的HELM(Holistic Evaluation of Language Models)大模型评测体系。本文解析其核心功能、安装配置步骤及应用场景,涵盖准确性、公平性、鲁棒性等多维度指标,助力开发者全面优化语言模型性能。
    443次使用
  • MMBench详解:多模态大模型基准测试、功能特点与使用指南
    MMBench
    MMBench是由上海人工智能实验室等机构联合推出的多模态基准测试平台,提供细粒度能力评估、大规模数据集及VLMEvalKit工具。本文详细介绍其核心功能、安装使用方法及应用场景,助力开发者全面评估多模态模型性能。
    271次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议 和 隐私政策
返回登录
  • 重置密码