vLLM 部署与性能调优:高并发推理的正确姿势
发表于|更新于|lab
|浏览量:
vLLM 部署与性能调优
Ollama 适合个人使用,但当你要对外提供服务、支撑高并发时,vLLM 是业界主流选择。它通过 PagedAttention、Continuous Batching 等优化,吞吐量可达传统方案的 10~20 倍。

一、环境要求
GPU:NVIDIA 显卡(Ampere 架构以上最佳),显存 ≥ 16GB
系统:Linux(推荐 Ubuntu 22.04+),CUDA 12.x
Python:3.10+
二、安装 vLLM
1 | # 方式一:pip 安装pip install vllm# 方式二:Docker(推荐生产环境)docker pull vllm/vllm-openai:latest |
三、启动服务
方式一:命令行
1 | python -m vllm.entrypoints.openai.api_server \ --model Qwen/Qwen2.5-7B-Instruct \ --served-model-name qwen2.5 \ --port 8000 \ --max-model-len 8192 \ --gpu-memory-utilization 0.9 |
方式二:Docker
1 | docker run --runtime nvidia --gpus all \ -v ~/.cache/huggingface:/root/.cache/huggingface \ -p 8000:8000 \ vllm/vllm-openai:latest \ --model Qwen/Qwen2.5-7B-Instruct \ --served-model-name qwen2.5 |
启动成功后访问 http://localhost:8000/v1/models 验证。
四、性能调优技巧
1. 连续批处理(默认开启)
vLLM 会自动将到达的请求动态组批,不要手动限制并发。压测时用多路并发验证吞吐:
1 | # 简单压测脚本python - 'EOF'import asyncio, aiohttpasync def ask(session, i): async with session.post("http://localhost:8000/v1/chat/completions", json={"model":"qwen2.5","messages":[{"role":"user","content":"讲个故事"}]}) as r: return await r.json()async def main(): async with aiohttp.ClientSession() as s: results = await asyncio.gather(*[ask(s, i) for i in range(32)]) print(f"完成 {len(results)} 个请求")asyncio.run(main())EOF |
2. 显存利用率
1 | --gpu-memory-utilization 0.92 # 允许用到 92% 显存(默认 0.9)--max-model-len 8192 # 按实际需求设置,过大会浪费 KV cache--enforce-eager # 显存不足时关闭 CUDA graph |
3. 量化提速
1 | # AWQ 量化模型,显存占用降低约 50%--quantization awq \--model Qwen/Qwen2.5-7B-Instruct-AWQ |
4. 多卡并行
1 | # 单机多卡--tensor-parallel-size 2# 跨机(需要多机配置)--tensor-parallel-size 4 --distributed-executor-backend ray |
五、效果对比
| 方案 | 7B 模型吞吐(tokens/s) | 适用场景 |
|---|---|---|
| CPU 推理 | 5~10 | 学习体验 |
| Ollama (GPU) | 50~100 | 个人/小团队 |
| vLLM (GPU) | 300~800 | 生产服务 |
| vLLM + 量化 + 多卡 | 1000+ | 高并发生产 |
六、常见问题
| 问题 | 解决 |
|---|---|
| 显存不足 OOM | 降低 max-model-len、启用量化、减少并发 |
| 模型下载慢 | 设置 HF_ENDPOINT=https://hf-mirror.com 使用镜像 |
| 响应变慢 | 检查是否被大请求占满 KV cache,限制 max-model-len |
| 需要多模型 | 启动多个 vLLM 实例,用 Nginx 做路由 |
小结
vLLM 是「从实验室走向生产」的必经之路。掌握它 = 掌握吞吐、并发、显存这三个生产关键词。先用 Ollama 验证效果,再用 vLLM 承接流量,是性价比最高的组合。
延伸阅读:
文章作者: 智算工坊
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 智算工坊!
相关推荐

2026-08-08
Dify 安装部署教程:5 分钟搭建可视化智能体平台
Dify 安装部署教程Dify 是目前最流行的开源 LLMOps 平台之一:可视化编排 Agent、自带知识库(RAG)、支持 100+ 模型接入,一条命令即可本地部署。本教程带你从零跑通 Dify。 一、环境要求 系统:Linux / macOS / Windows(推荐 Linux 服务器) Docker:20.10+,并启用 Docker Compose 配置:最低 4 核 8G 内存(生产建议 8 核 16G) 模型 API Key:OpenAI / DeepSeek / 通义千问 / 智谱 任选其一 二、安装步骤1. 安装 Docker(如已安装可跳过)1# Ubuntu / Debiancurl -fsSL https://get.docker.com | bashsudo systemctl enable --now docker# 验证docker --versiondocker compose version 2. 克隆 Dify 仓库1git clone https://github.com/la...

2026-08-05
本地化部署 Llama 3 后的 5 个性能调优技巧
Llama 3 本地部署调优:消费级显卡上流畅运行 7B 模型的 5 个技巧在消费级显卡(如 RTX 3060 12GB、RTX 3090 24GB)上跑 7B 级别模型是如今「人人可做」的事,但「能跑」和「跑得流畅」之间隔着一段调优的距离。这篇实践把最常见的 5 个性能优化手段讲透,每一条都附上手感数据和适用前提。 技巧一:用 4-bit 量化(GGUF)把显存压下来问题本质:7B 模型原始 FP16 权重约 14GB,几乎吃掉整张 3060 的显存,而大模型推理「一次只激活一层权重」,没必要让全部权重以高精度驻留。量化就是降低权重存储位宽来换显存。GGUF 格式的量化方案已相当成熟,按质量从高到低大致有 Q8_0、Q6_K、Q5_K_M、Q4_K_M 等。 实践建议: 消费级显卡首选 Q4_K_M,Perplexity 表格里它相较原版损失极小、文件却只有约 4.7GB,是「性价比最优档」;显存非常紧张再考虑 Q3_K_M。 具体操作:先用 llama.cpp 把模型转成 GGUF,再跑 quantize 命令或用现成的量化版(HF 上大量 -GGUF 仓库可直接下载)。...

2026-08-08
ComfyUI 部署与工作流:节点式 AI 绘画
ComfyUI 部署与工作流ComfyUI 是基于 Stable Diffusion 的节点式 AI 绘画工具,以灵活、可控著称:每个处理步骤都是一个节点,连线即可搭建复杂生成流程,是专业 AI 绘画的首选。 一、环境要求 GPU:NVIDIA 显卡,显存 ≥ 8GB(推荐 12GB+) 系统:Windows / Linux / macOS Python:3.10+(自带环境) 二、安装部署方式一:一键整合包(推荐新手)下载秋叶/星空等社区整合包,解压即用,自带模型与环境。 方式二:源码部署1git clone https://github.com/comfyanonymous/ComfyUI.gitcd ComfyUI# 创建虚拟环境python -m venv venvsource venv/bin/activate# 安装依赖pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121pip install -r ...