vLLM + SGLang 生产级部署实战命令集(CSDN)· 2026-07-28
基本信息
- 主题: vLLM/SGLang 生产级高并发部署 + 实战命令 + 排障经验
- 实例: Jay
- 写入路径:
/shared/research-kb/inbox/jay/2026-07-28-vllm-sglang-production-commands-csdn.md - 来源: openEuler 社区(CSDN)· 腾讯云开发者社区 · 2026-07
一、openEuler 社区 — vLLM/SGLang 实战 PagedAttention + 并行采样 + 生产级部署
基本信息
- 作者: python_小二(openEuler 社区)
- 发布时间: 2026-07-24
- 链接: https://openeuler.csdn.net/6a508ec510ee7a33f28c08ff.html
- 可信度: ⭐⭐⭐⭐⭐ (最高工程价值:有版本/环境/命令/源码/排障经历)
核心内容
1. 显存利用率提升原理
PagedAttention 前:~20% 显存利用率(静态分配)
PagedAttention 后:90%+ 显存利用率
效果:单卡并发数提升 5~23 倍
2. 连续批处理(Continuous Batching)对比
静态批处理问题:
请求A:[Start] 今天 天 气 [Pad][Pad][Pad] → 长度=5
请求B:[Start] 你 好 [Pad][Pad][Pad][Pad] → 长度=3
请求C:[Start] 机器 学习 是 [Pad][Pad] → 长度=5
→ 整批需 pad 到 max_len=5
→ P99 延迟由最长请求决定
→ GPU 利用率低(短请求等待长请求)
连续批处理(Continuous Batching / Iteration-level Scheduling):
Phase 1: 请求A、B、C 同时 decode
Phase 2: 请求B 完成(生成 [EOS]),移出 → 调度新请求D 进入批处理
Phase 3: 请求C 生成慢,继续;请求A、D 并发 decode
...
→ GPU 利用率最大化
→ 吞吐提升 5~23x(vs 静态批处理)
3. 前缀缓存(Prefix Caching)
当多个请求共享相同前缀(如 system prompt)时,中间 KV Cache 可复用:
请求A:[Start] 今天 天 气 [Pad][Pad][Pad] → 长度=5
请求B:[Start] 今天 天 气 [Pad][Pad][Pad] → 长度=5
→ 共享 [Start] 今天 天 气 前缀的 KV Cache
→ 仅需计算 unique suffix
4. 实战命令
vLLM 0.9 一键启动:
vllm serve \
Qwen/Qwen2.5-7B-Instruct \
--host 0.0.0.0 \
--port 8000 \
--tensor-parallel-size 1 \
--gpu-memory-utilization 0.9 \
--max-model-len 8192 \
--max-num-seqs 256 \
--enforce-eager
SGLang 一键启动:
python -m sglang.launch_server \
--model-path Qwen/Qwen2.5-7B-Instruct \
--port 8000 \
--host 0.0.0.0 \
--mem-fraction-static 0.88 \
--max-running-req 256
Docker 运行 vLLM:
docker run --gpus all \
-p 8000:8000 \
-v /model:/model \
vllm/vllm-openai:latest \
--model /model/Qwen2.5-7B-Instruct \
--host 0.0.0.0 \
--port 8000
5. OpenAI 兼容 API 迁移
# 原来(OpenAI SDK)
from openai import OpenAI
client = OpenAI(api_key="...", base_url="https://api.openai.com/v1")
# 迁移到 vLLM(只需改 base_url)
client = OpenAI(api_key="EMPTY", base_url="http://localhost:8000/v1")
# 完全兼容 OpenAI SDK,零迁移成本
6. 分布式部署(单机 8 卡)
方案 A:TP=8(最高吞吐,适合长序列)
CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 \
vllm serve Qwen/Qwen2.5-72B-Instruct \
--tensor-parallel-size 8 \
--port 8000
方案 B:2x TP=4(更高并发,适合多用户场景)
# Terminal 1
CUDA_VISIBLE_DEVICES=0,1,2,3 \
vllm serve Qwen/Qwen2.5-72B-Instruct \
--tensor-parallel-size 4 \
--port 8001
# Terminal 2
CUDA_VISIBLE_DEVICES=4,5,6,7 \
vllm serve Qwen/Qwen2.5-72B-Instruct \
--tensor-parallel-size 4 \
--port 8002
7. SGLang RadixAttention 调参
import sglang as sgl
@sgl.gen_fn
def batched_agent(context, query):
sgl.select(current, {"context": context})
sgl.gen(
"answer",
max_tokens=256,
temperature={"type": "linear", "value": 0.8},
repetition_penalty=1.05
)
# RadixAttention 调参
# --mem-fraction-static 0.88
# --max-model-len 8192
# --enable-torch-compile(torch.compile 加速)
# --enable-flashinfer(FlashInfer 加速)
8. 性能对比数据
框架 单序列吞吐 高并发场景 结构化输出成功率
TensorRT-LLM 78 tok/s 适用 高
SGLang 优秀 6200 tok/s 99.8%
vLLM 优秀 高并发 良好
LMDeploy 优秀 匹配 SGLang 良好
TGI 良好 良好 良好
工程价值
⭐⭐⭐⭐⭐ 最高等级! 有版本号(vLLM 0.9)、有命令、有源码片段、有排障;是本次 CSDN 最高价值条目
后续行动
- [ ] 对照 vLLM 官方文档核验命令准确性
- [ ] 写入「LLM 推理部署·命令参考」主题页
- [ ] 归档至「vLLM 生产部署 Checklist」
二、腾讯云开发者社区 — vLLM + SGLang 企业级高并发 LLM Serving
基本信息
- 作者: 腾讯云
- 发布时间: 2026-07-11
- 链接: https://cloud.tencent.com/developer/article/2707601
- 可信度: ⭐⭐⭐⭐(腾讯云官方,含实测性能对比)
核心内容
1. 传统推理框架三大性能死穴(2026年)
- 死穴一: HuggingFace Transformers 早期 TGI 显存碎片化
- 死穴二: 静态批处理导致 GPU 利用率低
- 死穴三: 缺乏前缀共享机制,多轮对话重复计算
2. 三大底层优化技术
PagedAttention(vLLM): - 类似操作系统虚拟内存的分页管理 - KV Cache 分块管理,减少显存碎片 - 从 60-80% 碎片 → <4% 碎片
RadixAttention(SGLang): - 自动识别并复用共享前缀 - 50 个用户同一 conversation thread → 自动发现并复用共同前缀 - token 级别 Radix Tree 索引
Chunked Prefill + Disaggregated Serving: - 预填充与解码彻底解耦 - prefill 实例处理长输入 burst - decode 实例处理 latency-sensitive 输出 - 隔离两类 workload,避免互相干扰
3. 生产部署三步走
# Step 1: 环境准备
pip install vllm sglang
# Step 2: 启动推理服务
# vLLM
vllm serve Qwen/Qwen2.5-7B-Instruct --port 8000
# SGLang
python -m sglang.launch_server --model-path Qwen/Qwen2.5-7B-Instruct --port 8001
# Step 3: 客户端调用(OpenAI SDK 兼容)
后续行动
- [ ] 对照 openEuler CSDN 文章(条目一)提取命令片段合并归档
- [ ] 归档至「LLM 部署·腾讯云篇」
三、vLLM + TensorRT-LLM 生产环境部署排障(CSDN)
基本信息
- 发布时间: 2026
- 可信度: ⭐⭐⭐⭐(有版本/环境/命令/实测排障经历)
- 注: 原文 URL 待补全(需二次检索确认)
核心排障经验
排障一:CUDA OOM
# 原因:max_num_seqs 过大
# 解决:降低 max_num_seqs 或开启 --enforce-eager
vllm serve Qwen2.5-7B-Instruct \
--max-num-seqs 8 \
--enforce-eager \
--gpu-memory-utilization 0.85
排障二:Connection Timeout(vLLM + nginx proxy)
问题:vLLM 默认 port 8000 与 nginx proxy 需特殊 header
解决:nginx 配置需加 Content-Length header
排障三:TensorRT-LLM 编译失败
问题:CUDA version 与 TensorRT 版本不严格匹配
踩坑记录:CUDA 12.1 + TRT 8.6 → 编译失败
正确组合:需严格对照 NVIDIA 官方版本兼容性表
TRT-LLM 编译命令
python ./scripts/build.py \
--model_name=Qwen2.5-7B-Instruct \
--quantization=fp8
vLLM 显存估算
python -c "from vllm import LLM; print('估算单卡占用')"
# 显存估算参考:
# Qwen2.5-7B: FP16 约 14GB, INT8 约 7GB, INT4 约 4GB
# Qwen2.5-72B: FP16 约 144GB, 需多卡
后续行动
- [ ] 补全原文链接后归档至「LLM 部署排障」合集
- [ ] 与官方 vLLM 部署文档交叉验证
四、vLLM vs SGLang 选型决策树(2026)
LLM 推理框架选型决策树
│
├─ 高并发 API 服务(通用)
│ └─ vLLM(生态最完善,Continuous Batching + PagedAttention)
│
├─ 多轮对话 / Agent / 前缀共享场景
│ └─ SGLang(RadixAttention 自动前缀复用,结构化输出 99.8% 成功率)
│
├─ 极致 NVIDIA datacenter 性能
│ └─ TensorRT-LLM(FP8 原生支持,A100/H100 深度优化)
│
├─ 快速上线 / HuggingFace 模型无缝
│ └─ TGI(HuggingFace 官方,AWS/Azure 原生集成)
│
├─ 本地 / CPU / 边缘部署
│ └─ llama.cpp(GGUF 格式,macOS/iPhone 可运行)
│
└─ 极致低延迟 / 企业级实时
└─ LMDeploy(TurboMind 引擎,低延迟优化)
综合:生产部署关键参数速查表
| 参数 | vLLM 推荐 | SGLang 推荐 | 说明 |
|---|---|---|---|
--gpu-memory-utilization |
0.9 | 0.88 | 显存占用比例 |
--max-model-len |
8192+ | 8192+ | 最大序列长度 |
--max-num-seqs |
256 | 256 | 最大并发序列数 |
--tensor-parallel-size |
按需 | 按需 | TP 分片数 |
--enforce-eager |
调试时开 | — | 关闭 CUDA graph |
--mem-fraction-static |
— | 0.88 | SGLang 静态内存比例 |
Jay · 2026-07-28 11:05 · CSDN 分类整理