
🧠 记忆锚点:Prefill 计算密集,Decode 访存密集;分离能独立扩缩,但 KV 传输不能成为新瓶颈。
💡 答案要点
背景:vLLM v1 2026年重磅更新
2026年4月,vLLM v0.18/v0.19连续发布,引入了 gRPC serving、GPU 加速投机采样、Gemma 4 支持,以及最关键的vLLM v1 PD 分离(Disaggregation)架构。这是自 PagedAttention 以来最重要的架构演进。
为什么需要 PD 分离?
传统架构的问题:
- Prefill(计算密集)和 Decode(访存密集)混合在同一 GPU
- Prefill 拖慢 Decode 的 TTFT(首 token 延迟)
- Decode 拖慢 Prefill 的吞吐量
- 资源利用率低,两者互相干扰
PD 分离的核心思路:
把 Prefill 和 Decode 解耦到不同节点,各自优化
→ Prefill 节点:计算密集,用高端 GPU(如 H100)
→ Decode 节点:访存密集,可用中端 GPU(如 A100)vLLM v1 PD 分离架构:
┌─────────────────────────────────────────────────────┐
│ vLLM v1 PD Disaggregation │
├─────────────────────────────────────────────────────┤
│ │
│ 请求入口(disagg_proxy_server) │
│ ↓ │
│ ┌─────────────────┐ KV Cache ┌─────────────────┐
│ │ Prefiller Node │ ──────────────→ │ Decoder Node │
│ │ (计算密集型) │ RDMA 传输 │ (访存密集型) │
│ │ GPU: H100 │ │ GPU: A100 │
│ │ Port: 8010 │ │ Port: 8020 │
│ └─────────────────┘ └─────────────────┘
│ │
│ Key技术:MooncakeConnector + LMCache + RDMA │
└─────────────────────────────────────────────────────┘Mooncake + LMCache 关键技术:
"Mooncake 是字节跳动开源的 KVCache 中心化架构,核心创新是用 RDMA 高带宽网络实现 Prefiller 和 Decoder 之间的 KV Cache 传输。LMCache 是配套的 KV Cache 管理层,支持 Mooncake Store 作为后端,实现 KV Cache 的分块存储和传输。"
Mooncake 架构核心组件:
| 组件 | 角色 | 说明 |
|---|---|---|
| Mooncake Store | KV Cache 存储引擎 | 支持 RDMA 传输,延迟 < 100μs |
| LMCache | KV Cache 管理层 | 统一接口,支持 chunk 级别传输 |
| MooncakeConnector | vLLM v1 连接器 | 内置支持,即插即用 |
| disagg_proxy_server | 请求路由 | 把请求分发到 Prefiller/Decoder |
生产部署配置示例:
# Prefiller Node 配置(Machine A, 192.168.0.2)
# mooncake-prefiller-config.yaml
chunk_size: 256
remote_url: "mooncakestore://192.168.0.3:50052/"
remote_serde: "naive"
local_cpu: False
max_local_cpu_size: 100
extra_config:
local_hostname: "192.168.0.2"
metadata_server: "http://192.168.0.3:8080/metadata"
protocol: "rdma"
device_name: "mlx5_0" # RDMA 网卡
master_server_address: "192.168.0.3:50052"
global_segment_size: 32212254720 # 30GB
local_buffer_size: 1073741824 # 1GB
# Decoder Node 配置(Machine B, 192.168.0.3)
# mooncake-decoder-config.yaml
chunk_size: 256
remote_url: "mooncakestore://192.168.0.3:50052/"
remote_serde: "naive"
extra_config:
local_hostname: "192.168.0.3"
metadata_server: "http://192.168.0.3:8080/metadata"
protocol: "rdma"
device_name: "mlx5_0"
master_server_address: "192.168.0.3:50052"
global_segment_size: 32212254720
local_buffer_size: 1073741824启动命令:
# Prefiller Node(Machine A)
CUDA_VISIBLE_DEVICES=0 \
python3 -m vllm.entrypoints.openai.api_server \
--host 0.0.0.0 --port 8010 \
--model meta-llama/Llama-3-70B-Instruct \
--gpu-memory-utilization 0.9 \
--kv-transfer-config '{"kv_connector":"MooncakeConnector","kv_role":"kv_producer","num_workers":10}'
# Decoder Node(Machine B)
CUDA_VISIBLE_DEVICES=0 \
python3 -m vllm.entrypoints.openai.api_server \
--host 0.0.0.0 --port 8020 \
--model meta-llama/Llama-3-70B-Instruct \
--gpu-memory-utilization 0.9 \
--kv-transfer-config '{"kv_connector":"MooncakeConnector","kv_role":"kv_consumer"}'
# 启动 Proxy Server(Machine B,Decoder 节点上)
python3 -m lmcache.disagg_proxy_server \
--port 8000 \
--prefill-address 192.168.0.2:8010 \
--decode-address 192.168.0.3:8020vLLM v1 vs v0 关键区别:
| 维度 | v0(传统架构) | v1(PD 分离) |
|---|---|---|
| Prefill/Decode | 同一进程/GPU | 分离到不同节点 |
| KV Cache 传输 | 无(本地) | RDMA 跨节点 |
| 资源利用率 | 互相干扰 | 各自独立优化 |
| TTFT | 受 Decode 影响 | Prefill 独立,TTFT 更稳定 |
| 适用场景 | 中小规模 | 超大规模、高并发 |
| 部署复杂度 | 低 | 高(需要 RDMA 网络) |
DeepSeek MoE + PD 分离实战数据:
示例表达(仅在能用本人经历或可复现实验佐证时使用): "vLLM 官方博客显示,在 H200 上部署 DeepSeek MoE 模型,结合 Wide-EP(Expert Parallel)和 PD 分离,实测达到 2.2k tok/s/H200 的吞吐量。关键优化:Wide-EP 最大化 KV Cache 效率(MLA 架构),Dual-Batch Overlap(DBO)减少通信瓶颈,EPLB(Expert Parallel Load Balancing)解决专家负载不均问题。"
EAGLE + PD 分离叠加效果:
# vLLM v1 + EAGLE 投机采样 + PD 分离组合配置
llm = LLM(
model="meta-llama/Llama-3-70B-Instruct",
tensor_parallel_size=8,
speculative_config={
"model": "yuhuili/EAGLE-LLaMA3-Instruct-8B",
"num_speculative_tokens": 4,
"method": "eagle",
},
# PD 分离配置
kv_transfer_config={
"kv_connector": "MooncakeConnector",
"kv_role": "kv_both" # 对称模式
}
)
# Prefiller: EAGLE 预测 + PD 传输 KV
# Decoder: 接收 KV + EAGLE 验证 + 最终输出
# 效果:Prefill 加速 3-5x,Decode 延迟降低 40%生产选型建议:
| 场景 | 推荐方案 |
|---|---|
| 小规模(< 10 QPS) | 传统 vLLM,单机多卡 |
| 中等规模(10-100 QPS) | vLLM v0 + Continuous Batching |
| 大规模(> 100 QPS) | vLLM v1 + PD 分离 + Mooncake |
| 超大规模 + MoE 模型 | vLLM v1 + PD + Wide-EP + DBO |
面试话术:
"Prefill/Decode 分离利用两阶段资源特征不同:Prefill 通常更偏计算,Decode 通常更受 KV Cache 读取和显存带宽影响。分离可独立扩缩和调度,但新增 KV 传输、网络、路由、故障恢复与负载均衡成本,并非一定优于共置。应按长度分布、并发和 SLO 比较端到端收益。"
延伸阅读:
版本: v3.0 | 更新: 2026-05-14 | by 二狗子 🐕