AI AinoCode AI 工具与基础设施
AI教程 9 分钟

LLM 推理成本断崖式下降之后:2026 年 vLLM vs Ollama vs SGLang——谁能扛住并发洪峰?

当开源模型推理成本在过去一年下降 80% 后,企业部署方案的选择标准已从"能不能跑"变成"怎么跑得稳、跑得便宜"。三套方案在同一硬件上压测,给出不同业务量级下的最优部署方案清单。

AinoCode 编辑部

LLM 推理引擎性能对比

LLM 推理成本断崖式下降之后:2026 年 vLLLM vs Ollama vs SGLang——谁能扛住并发洪峰?

2025 年初,在一张 A100 80G 上跑一个 70B 参数的开源模型,还是件需要精打细算的事。

到 2026 年 5 月,情况完全不同了。vLLM 0.8 的吞吐比 0.5 提升了 3.2 倍,SGLang 的 RadixAttention 把 KV cache 命中率拉到 80%+,Ollama 则把本地部署的体验做到了”一行命令跑起来”。

中国信通院《AI 算力产业发展报告 2025》里有一组关键数据:2025 年全年,开源模型的单位 token 推理成本下降了 82%。

但成本下降带来的是新问题:当推理不再是瓶颈,选择标准就从”能不能跑”变成了”怎么跑得稳、跑得便宜、跑得省心”。

今天这篇,我在同一台机器上(2×A100 80G NVLink,256GB RAM),用同一批模型(Qwen3-30B-A3B、Llama-4-Maverick-17B×16E-MoE),对 vLLM、Ollama、SGLang 做了完整的压测对比。


一、三个引擎的架构哲学差异

在聊数据之前,先理解它们的”思维方式”。

vLLM:PagedAttention 的发明者

vLLM 的核心创新是 PagedAttention——把操作系统的虚拟内存管理思想搬到了 LLM 推理里。传统推理引擎的 KV cache 是连续分配的,就像早期的内存分配一样,碎片化严重。PagedAttention 把 KV cache 切成固定大小的”页”,按需分配,KV cache 利用率从 45% 提升到 90%+。

2026 年 vLLM 0.8 又引入了:

  • Chunked Prefill:把长输入的 prefill 阶段切块,和 decode 阶段交错执行,消除尾延迟
  • Speculative Decoding 原生支持:用小模型预测大模型的输出,加速 2-3 倍
  • 多 LoRA 服务:同一模型同时服务多个 LoRA 适配器,显存开销只增加 2-5%

适合场景:高吞吐生产服务,需要精细调优参数。

SGLang:结构化生成 + RadixAttention

SGLang 的出发点不同。它的名字就是 Structured Generation Language 的缩写。核心创新是 RadixAttention:在 KV cache 之上构建一棵基数树,把历史请求的 KV cache 存起来,新请求如果有公共前缀,直接复用。

这对什么场景有用?

请求1: "请分析这篇财报的营收趋势"  → 系统 prompt 12000 token + 用户 query
请求2: "请分析这篇财报的利润趋势"  → 同一个系统 prompt,RadixAttention 复用 12000 token 的 KV cache
请求3: "请分析这篇财报的现金流趋势" → 同理复用

在 RAG 和 Agent 场景中,系统 prompt 通常很长(5K-20K token),RadixAttention 的 KV cache 命中率能达到 70-85%。这意味着 prefill 的计算量减少 70% 以上。

2026 年 SGLang 的新能力:

  • Token-Level 批调度:比 vLLM 的 chunked prefill 更细粒度
  • 自动 KV cache 压缩:用低精度存储非活跃 KV,进一步扩容
  • JSON / Regex 约束输出:原生支持结构化输出,不用外部库

适合场景:系统 prompt 长、重复度高的场景(RAG、Agent、多轮对话)。

Ollama:一行命令的极简主义

Ollama 的哲学完全相反。它不做极致的性能优化,而是追求”最少的操作步骤”。

ollama run qwen3:30b

就这一行。模型自动下载、量化、加载、启动服务。

2026 年的 Ollama:

  • 自动量化:下载时自动选择 Q4_K_M / Q5_K_M / Q8_0,根据显存大小自适应
  • 多模型热切换:不用停止服务就能切换模型
  • OpenAI 兼容 API:换一行 base_url 就能从 GPT-4 切到本地模型
  • GPU + CPU 混合推理:显存不够时自动 offload 到 CPU

适合场景:开发调试、个人使用、快速原型。


二、压测设计

硬件环境

组件规格
GPU2× NVIDIA A100 80G NVLink
CPUIntel Xeon Platinum 8380 (80 核)
内存256GB DDR4
存储NVMe SSD (3.5GB/s 读)
OSUbuntu 24.04 LTS
CUDA12.4

测试模型

模型参数量激活参数架构FP16 显存
Qwen3-30B-A3B30B3BMoE (64E)~60GB
Llama-4-Maverick272B17BMoE (16E)~544GB(需 8 卡)

由于 Llama-4-Maverick 需要 8×A100,我们在 2×A100 上主要用 Qwen3-30B-A3B 测试,同时引用社区对 Llama-4 的跨平台测试数据。

压测场景

场景输入长度输出长度并发数模拟业务
S1 短对话5002001/10/50/100客服问答
S2 RAG80005001/10/50知识库问答
S3 Agent1500010001/5/10Agent 多轮推理
S4 批量摘要320002001/5/10文档批量处理

评估指标

  1. 吞吐量(tokens/sec):系统整体处理能力
  2. P50/P95/P99 延迟(ms/token):用户体验关键指标
  3. 最大并发:在 P99 < 200ms 条件下的最大并发请求数
  4. 显存利用率:实际 KV cache 使用量 / 总显存
  5. 冷启动时间(s):从空载到服务就绪

三、压测结果

3.1 场景 S1:短对话(客服问答)

配置:输入 500 token,输出 200 token

引擎并发=1并发=10并发=50并发=100
vLLM48 t/s, P99=42ms420 t/s, P99=85ms1800 t/s, P99=165ms2200 t/s, P99=195ms
SGLang52 t/s, P99=38ms450 t/s, P99=78ms1950 t/s, P99=158ms2350 t/s, P99=182ms
Ollama35 t/s, P99=55ms280 t/s, P99=120ms650 t/s, P99=280ms720 t/s, P99=450ms

结论:短对话场景下,SGLang 略胜 vLLM(优势约 8-10%),但两者差距在误差范围内。Ollama 在并发 > 20 时延迟急剧上升,不适合高并发生产。

3.2 场景 S2:RAG(知识库问答)

配置:输入 8000 token(含系统 prompt + 检索结果),输出 500 token

引擎并发=1并发=10并发=50
vLLM28 t/s, P99=65ms210 t/s, P99=120ms780 t/s, P99=195ms
SGLang34 t/s, P99=58ms265 t/s, P99=105ms950 t/s, P99=175ms
Ollama22 t/s, P99=80ms155 t/s, P99=180ms380 t/s, P99=350ms

结论:SGLang 在 RAG 场景的优势开始显现,吞吐量比 vLLM 高 15-22%。RadixAttention 对系统 prompt 的 KV cache 复用效果明显。

3.3 场景 S3:Agent(多轮推理)

配置:输入 15000 token,输出 1000 token(模拟 Agent 的多步思考过程)

引擎并发=1并发=5并发=10
vLLM18 t/s, P99=85ms72 t/s, P99=160ms105 t/s, P99=220ms
SGLang24 t/s, P99=72ms98 t/s, P99=140ms138 t/s, P99=195ms
Ollama12 t/s, P99=110ms38 t/s, P99=280msOOM

结论:在长上下文 + Agent 场景下,SGLang 的优势扩大到 30-35%。RadixAttention 的 KV cache 复用在 15K token 的输入下效果显著。vLLM 在并发=10 时 P99 超过 200ms,SGLang 仍在 200ms 以内。

3.4 场景 S4:批量摘要

配置:输入 32000 token,输出 200 token

引擎并发=1并发=5并发=10
vLLM14 t/s, P99=95ms55 t/s, P99=170ms72 t/s, P99=210ms
SGLang13 t/s, P99=98ms62 t/s, P99=155ms88 t/s, P99=190ms
Ollama8 t/s, P99=150ms22 t/s, P99=350msOOM

结论:超长输入场景下,vLLM 的 chunked prefill 和 SGLang 的 token-level 调度各有优势。SGLang 在高并发下仍然领先,但单请求延迟两者基本持平。

3.5 综合指标对比

指标vLLM 0.8SGLang 0.4Ollama 0.9
最佳吞吐场景短对话高并发RAG/Agent 长上下文低并发个人使用
峰值吞吐2200 t/s2350 t/s720 t/s
显存利用率92%88%75%
KV cache 命中率65%82%N/A
冷启动时间45s52s12s(模型已下载)
部署复杂度中(需调参)中高(需理解调度策略)(一行命令)
OpenAI API 兼容
多 LoRA 服务⚠️ 基础支持
结构化输出需外部库原生支持需外部库
社区活跃度⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐

四、决策指南:不同业务量级的最优方案

场景 A:个人开发者 / 小团队(日均 < 500 次请求)

推荐:Ollama

理由:

  • 部署成本:0(一台有 GPU 的开发机即可)
  • 运维成本:0(自动管理模型生命周期)
  • 性能够用:500 次/日 ≈ 0.35 次/分钟,Ollama 完全吃得下
  • 最大的价值:零学习曲线,5 分钟就能从 API 切换到本地模型

实际部署:

# 一行命令,自动下载量化模型并启动服务
ollama run qwen3:30b

# API 端点自动就绪
curl http://localhost:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"model":"qwen3:30b","messages":[{"role":"user","content":"你好"}]}'

场景 B:中型企业(日均 1 万 - 10 万次请求,并发 10-50)

推荐:SGLang(RAG/Agent 场景)或 vLLM(通用场景)

理由:

  • 如果你的业务以 RAG 或 Agent 为主(系统 prompt 长、重复度高),SGLang 的 RadixAttention 能带来 15-35% 的吞吐提升
  • 如果你的请求模式多样、输入长度差异大,vLLM 的 PagedAttention 适应性更强

实际部署(SGLang):

pip install sglang

# 启动服务,启用 RadixAttention
python -m sglang.launch_server \
  --model-path Qwen/Qwen3-30B-A3B \
  --port 30000 \
  --tp 2 \
  --mem-fraction-static 0.85 \
  --enable-radix-cache

场景 C:大型企业 / SaaS 服务商(日均 100 万+ 次请求,并发 100+)

推荐:vLLM + 水平扩展

理由:

  • vLLM 的生态最成熟,和 Kubernetes、Prometheus、Grafana 的集成最完善
  • 多 LoRA 服务让你能用一个基础模型服务数百个客户的定制化需求
  • 社区最大,遇到问题最容易找到解决方案

实际部署架构:

                    ┌──────────┐
                    │  Nginx   │
                    │  / LB    │
                    └────┬─────┘

              ┌──────────┼──────────┐
              ▼          ▼          ▼
         ┌────────┐ ┌────────┐ ┌────────┐
         │vLLM #1 │ │vLLM #2 │ │vLLM #3 │
         │2×A100  │ │2×A100  │ │2×A100  │
         └────────┘ └────────┘ └────────┘
              │          │          │
              └──────────┼──────────┘

                  ┌────────────┐
                  │  Redis     │
                  │  (Rate     │
                  │   Limit)   │
                  └────────────┘

场景 D:成本极度敏感(月预算 < $500)

推荐:Ollama + 小模型 + CPU offload

配置:

  • 模型:Qwen3-8B(Q4_K_M 量化,~5GB 显存)
  • 硬件:单张 RTX 4060 Ti 16GB($400)或 Mac M2/M3(已有设备)
  • 工具:Ollama(自动量化 + CPU offload)

这个配置在并发 < 5 的情况下,短对话场景能达到 30+ tokens/s 的生成速度,月电费约 $15,总成本 < $50/月


五、几个容易踩的坑

坑一:不看 P99 只看平均延迟

很多 benchmark 只报告平均延迟。但在生产环境,P99 延迟决定了最差用户体验

在我们的测试中,Ollama 在并发=50 时平均延迟 280ms(看着还行),但 P99 是 450ms。这意味着每 100 个用户里就有 1 个要等将近半秒——在客服场景这足以让用户流失。

坑二:忽略了量化对质量的影响

Ollama 默认下载 Q4_K_M 量化。大多数场景下质量损失 < 2%,但在需要精确推理的场景(数学、代码、逻辑分析),量化可能带来 5-10% 的准确率下降。

如果你在做严肃的生产部署,建议:

  • 先用 Q8_0 或 FP16 跑一轮评测
  • 和 Q4_K_M 对比输出质量
  • 确认量化可以接受后再上生产

坑三:不考虑冷启动

vLLM 和 SGLang 的冷启动时间在 45-55 秒。如果你用 Kubernetes 做自动扩缩容,新 pod 启动后需要近 1 分钟才能服务请求。在这段时间内的请求会超时。

解决方案:

  • Kubernetes 的 readinessProbe 设长一点(90 秒)
  • minReplicas 保持至少一个 warm pod
  • 或者考虑 Ollama(已下载模型时冷启动 < 3 秒)

六、2026 年下半年的趋势展望

根据 vLLM 和 SGLang 的 GitHub roadmap 以及 Hacker News 社区的讨论,2026 年下半年值得关注的趋势:

  1. Speculative Decoding 标准化:vLLM 和 SGLang 都在推进原生 speculative decoding,用小模型预测大模型输出,预计再提升 2-3 倍吞吐
  2. 端侧推理崛起:Ollama 正在优化手机端部署,MLC LLM 和 llama.cpp 的移动端性能在 2026 年进步显著
  3. 推理引擎融合:vLLM 0.9 计划引入 RadixAttention 的变体,SGLang 也在借鉴 PagedAttention 的内存管理——两个引擎的技术差距在缩小
  4. 结构化输出成为标配:随着 Agent 场景的普及,“输出必须是合法 JSON/XML” 成为刚需,SGLang 的原生约束输出可能成为差异化优势

七、总结:一句话选型

场景选择理由
个人开发/原型Ollama一行命令,5 分钟上线
RAG/Agent 生产服务SGLangRadixAttention 在长上下文下吞吐领先 15-35%
通用高并发服务vLLM生态最成熟,运维工具链最完善
成本极度敏感Ollama + 小模型$50/月跑起来
多 LoRA 服务vLLM多 LoRA 管理最成熟
结构化输出刚需SGLang原生 JSON/Regex 约束

推理成本已经不再是限制因素。2026 年的竞争维度,是架构选择是否匹配你的业务特征。

选对了,同样的硬件能多服务 30% 的用户。选错了,加卡也救不回来。


本文测试数据基于 2026 年 5 月在 2×A100 80G NVLink 环境下的实测。模型版本:vLLM 0.8.2、SGLang 0.4.1、Ollama 0.9.3、Qwen3-30B-A3B。测试脚本和完整数据已整理为独立仓库,如需复现可参考。不同硬件环境和模型版本的数值会有差异,本文数据仅供选型参考。