在跨模型副本集群中高效管理请求分发是大规模生产级 vLLM 部署的核心需求。标准的负载均衡器往往力有不逮,因为它们缺乏对 LLM 推理有状态特性(如 KV 缓存)的感知,且无法管理预填充/解码分离(prefill/decode disaggregation)等复杂的推理模式。

为了解决这一问题,我们推出了 vLLM RouterGithub 仓库),这是一款专为 vLLM 设计的高性能、轻量级负载均衡器。该路由采用 Rust 编写以实现极低的开销,作为智能的状态感知负载均衡器,部署在客户端与 vLLM 工作节点集群(无论是 K8s 还是裸机 GPU 集群)之间。

vLLM Router 衍生自 SGLang 模型网关 的一个分支,并针对 vLLM 进行了修改和简化。随着我们探索将该路由器合并到 vLLM 主仓库中,预计未来会进一步分化。另一方面,针对大规模部署的网关功能可能会与 SGLang 模型网关开发者协作统一。

核心架构与功能

vllm-router 旨在解决大规模推理中的两大主要挑战:智能负载均衡和对预填充/解码分离的支持。

1. 智能负载均衡策略

不同于简单的轮询(round-robin),vLLM Router 提供了多种复杂的负载均衡算法,以针对性能和状态亲和性进行优化。对于对话类工作负载,将来自同一用户的后续请求路由到持有其 KV 缓存的相同工作节点,对于最小化延迟至关重要。

为此,该路由器支持以下几种策略:

  • 一致性哈希 (Consistent Hashing): 这是最大化性能的关键策略。它确保具有相同路由键(如会话 ID 或用户 ID)的请求具有“粘性”,并始终路由到同一个工作副本,从而最大化 KV 缓存的复用。
  • 二选一 (Power of Two, PoT): 一种低开销的随机选择策略,可提供出色的负载均衡效果。
  • 轮询与随机 (Round Robin & Random): 用于无状态负载分发的标准策略。

2. 对预填充/解码分离的原生支持

该路由器被设计为 vLLM 最先进推理架构的编排层:预填充/解码 (P/D) 分离。

在这种架构中,计算密集型的预填充步骤和内存密集型的解码步骤由独立的、专门的工作组处理。vLLM Router 管理这一复杂的工作流:

  1. 它智能地将新请求路由到预填充工作组。
  2. 完成后,它将请求状态引导至相应的解码工作节点进行 Token 生成。
  3. 它支持针对 NIXL基于 NCCL(结合 ZMQ 发现) 的分离后端的发现与路由。

企业级韧性与可观测性

vllm-router 具备生产级特性,用于在大规模环境中维持高可用性。

  • Kubernetes 服务发现: 该路由器可以以 Kubernetes 原生模式运行,使用标签选择器自动发现、监控并路由到 vLLM 工作节点 Pod。
  • 容错机制: 它包含可配置的 重试逻辑(带有指数退避和抖动)以及 断路器。如果某个工作节点未通过健康检查,路由器会立即将其从路由池中移除并重试请求,防止级联故障。
  • 可观测性: 内置的 Prometheus 端点 (/metrics) 可导出关于请求量、延迟、错误率以及单个工作节点健康状况的详细指标,提供对推理集群的全方位视图。

基准测试分析:大规模场景下的性能之选

我们将全新的 vLLM Router 与两种广泛使用的替代方案进行了基准测试:

  • llm-d 一个 Kubernetes 原生路由框架,利用默认的队列感知负载均衡。
  • vLLM-native: 标准的 K8s 原生负载均衡器,采用基础轮询策略。关键在于,此选项不具备预填充/解码状态感知能力,将所有 Pod 视为相同的 vLLM 副本。

关于排除项的说明: 我们在基准测试中排除了 vLLM 内置的 DP/EP 协调器——这是 vLLM 集群推荐的 外部负载均衡 方案。由于已知的 性能问题,其吞吐量仅为其他方案的 1/8。

Llama 3.1 8B,配备 8 个预填充 Pod 和 8 个解码 Pod

  • vLLM Router(蓝线)的每秒请求数 (Req/S) 吞吐量比 llm-d(紫线)高 25%,比 K8s 原生负载均衡器(橘线)高 100%。
  • vLLM Router 的首字延迟 (TTFT) 接近 K8s 原生负载均衡器,且比 llm-d 快 1200 毫秒。

Deepseek V3,配备 1 个预填充 Pod (TP8) 和 1 个解码 Pod (TP8)

  • vLLM Router(蓝线)的每秒请求数 (Req/S) 吞吐量接近 llm-d(紫线),比 K8s 原生负载均衡器(橘线)高 100%。
  • vLLM Router 的首字延迟 (TTFT) 比 llm-d 和 K8s 原生负载均衡器快 2000 毫秒。

总结

vLLM Router 是在生产规模下运行 vLLM 的核心组件。它将推理架构从一组独立的实例转变为一个统一、富有韧性的集群。通过提供智能负载均衡和对预填充/解码分离的原生支持,它开启了性能和运营效率的新高度。

致谢

  • 感谢 Phi 和 AWS 团队提供技术支持和测试集群。
  • 特别感谢 Naman Lalit 推动了全面的性能和正确性基准测试工作。
  • 我们也要向 SGLang 模型网关团队表示感谢。通过 fork 他们成熟的 API 实现和服务框架,我们能够显著加速设计和实现过程,同时保持与开放标准的一致性。
  • 最后,感谢 Tyler Michael Smith 和 Robert Shaw 分享 llm-d 的专业知识和实践经验,这为性能优化和基准测试扫清了障碍。