【vllm】DP 负载均衡
https://docs.vllm.ai/en/latest/serving/data_parallel_deployment/#internal-load-balancing好的这是对 vLLM 文档中“混合负载均衡 (Hybrid Load Balancing)”部分的翻译和解释混合负载均衡 (Hybrid Load Balancing)混合负载均衡是介于内部负载均衡和外部负载均衡之间的一种方法。在这种模式下每个节点都会运行它自己的 API 服务器但这些 API 服务器只将请求分发给与它们位于同一个节点上的数据并行引擎。然后一个上游的负载均衡器例如Kubernetes 的 Ingress 控制器或专门的流量路由器负责将用户的请求分散到这些分布在不同节点上的 API 端点。你可以通过使用--data-parallel-hybrid-lb参数来启用此模式同时仍然需要在启动每个节点时指定全局的数据并行总规模。与内部负载均衡模式相比其关键区别在于你必须提供--data-parallel-size-local和--data-parallel-start-rank这两个参数以便每个节点都清楚地知道它负责管理哪些 rank引擎。此模式不兼容--headless参数因为每个节点都需要暴露一个自己的 API 端点来接收流量。你可以根据每个节点上本地 rank引擎的数量来调整--api-server-count的值。在这种配置下每个节点都将调度决策保持在本地这减少了跨节点的通信流量并避免了在数据并行规模较大时可能出现的单节点瓶颈问题。核心思想解读 (用一个例子来解释)想象一个有 2 个节点Node 0, Node 1、总共 4 个Engine Core的集群 (--data-parallel-size4)。内部负载均衡 (Internal LB) 的做法是只有Node 0运行 API 服务器。所有用户的 HTTP 请求都打到 Node 0。Node 0 上的 API 服务器会把请求分发给 Node 0 上的引擎rank 0, 1和Node 1 上的引擎rank 2, 3。这会产生大量的跨节点 ZMQ 通信。混合负载均衡 (Hybrid LB) 的做法是Node 0和Node 1都运行自己的 API 服务器。你在集群的最前面放一个简单的负载均衡器比如 Nginx 或云服务商提供的 LB它会把 50% 的用户请求发给 Node 0 的 API另外 50% 发给 Node 1 的 API。关键点当一个请求到达Node 0的 API 服务器时它只会在本地的引擎rank 0, 1之间做选择。它永远不会把请求发给 Node 1。同理当一个请求到达Node 1的 API 服务器时它也只会在本地的引擎rank 2, 3之间做选择。优点没有跨节点调度流量API 服务器和它调度的Engine Core都在同一台机器上通信通过更高效的本地 IPC 进行网络开销大大降低。扩展性更好没有一个单一的“主节点”来处理所有的 API 请求和调度决策避免了主节点成为性能瓶颈。每个节点都是一个自给自足的“小集群”。这个问题问得非常到位它被称为“Hybrid” (混合)是因为它巧妙地融合了“内部负载均衡”和“外部负载均衡”这两种模式的核心思想。我们可以把它理解为一个“两层”的负载均衡策略第 1 层 (外部的)一个独立于 vLLM 的、上游的负载均衡器。第 2 层 (内部的)vLLM 在每个节点内部自带的、本地化的负载均衡器。下面我们来分解一下它到底“混合”了什么。它从“外部负载均衡”那里借鉴了什么借鉴了“多入口、分散流量”的思想。在纯粹的外部负载均衡模式下你会启动多个完全独立的 vLLM 服务然后用一个外部工具如 Nginx、HAProxy 或云服务商的 LB将 HTTP 请求以轮询等方式分发给这些独立的服务。这个外部工具对 vLLM 内部一无所知。Hybrid 模式也这么做它同样依赖一个外部的、上游的负载均衡器来将用户的 HTTP 请求分发到不同的节点上。这是它的“外部”特性。[用户请求] - [外部 LB] - [Node 0 API] 或 [Node 1 API] 或 ...它从“内部负载均衡”那里借鉴了什么借鉴了“智能调度、感知引擎状态”的思想。在纯粹的内部负载均衡模式下只有一个 API 入口在主节点上这个 API 服务器非常“聪明”。它通过DP Coordinator了解集群中所有Engine Core包括远程的的实时负载然后做出最优的、精细化的调度决策。Hybrid 模式在每个节点内部也这么做每个节点上的API Server同样是“聪明”的但它的视野被限定在了本地。它会感知本节点上所有Engine Core的负载状态并智能地将请求分发给本地最空闲的那个引擎。这是它的“内部”特性。[Node 0 API] - (感知本地引擎负载) - [Node 0 Engine 0] 或 [Node 0 Engine 1][Node 1 API] - (感知本地引擎负载) - [Node 1 Engine 2] 或 [Node 1 Engine 3]总结混合的本质Hybrid Load Balancing (外部的、粗粒度的 HTTP 流量分发) (内部的、精细化的本地引擎调度)所以“Hybrid” 这个词非常贴切因为它不是单纯的外部模式因为节点内部有智能调度也不是单纯的内部模式因为流量的初次分发是由外部完成的且调度范围是本地化的。对比项内部负载均衡 (Internal)外部负载均衡 (External)混合负载均衡 (Hybrid)API 入口单一入口 (主节点)多个独立入口多个节点级入口负载均衡器vLLM 自身 (API Server Coordinator)外部工具 (Nginx, LB…)外部工具 vLLM 自身(混合)调度范围全局(所有节点的所有引擎)无(每个服务是孤岛)本地(仅限本节点的引擎)跨节点流量高(API Server需要与远程引擎通信)无(服务间不通信)低/无(调度流量都在节点内部)核心思想中央集权全局最优完全分散各自为政联邦制分而治之结论Hybrid模式取了两种模式的优点它通过外部负载均衡实现了流量入口的横向扩展避免了内部模式下的单主节点瓶颈。它通过内部本地化调度实现了对计算资源的高效利用避免了外部模式下“盲目”分发请求可能导致的资源不均。因此它是一种兼具扩展性和效率的“混合体”。好的这是对 vLLM 文档中“外部负载均衡 (External Load Balancing)”部分的翻译和解释。外部负载均衡 (External Load Balancing)特别是对于更大规模的部署将数据并行 (DP) rank 的编排和负载均衡交由外部系统来处理是一种更合理的方式。在这种情况下更方便的做法是将每一个 DP rank 都视为一个独立的 vLLM 部署让它拥有自己独立的 API 端点。然后由一个外部的路由器External Router在这些端点之间分发 HTTP 请求并可以利用从每个服务器获取的实时遥测数据或状态指标来做出路由决策。对于非 MoE混合专家模型这种方式已经可以非常简单地实现因为每个部署的服务器都是完全独立的。这种场景下甚至不需要使用任何数据并行的命令行选项。我们也为MoE DPEP数据并行专家并行模型支持了一种等价的拓扑结构可以通过以下命令行参数进行配置。如果 DP ranks 位于同一位置即同一个节点/IP 地址系统会使用一个默认的 RPC 端口但你必须为每个 rank 指定一个不同的 HTTP 服务器端口# Rank 0CUDA_VISIBLE_DEVICES0vllm serve$MODEL--data-parallel-size2--data-parallel-rank0\--port8000# Rank 1CUDA_VISIBLE_DEVICES1vllm serve$MODEL--data-parallel-size2--data-parallel-rank1\--port8001对于多节点的情况还必须指定 rank 0 的地址和端口# Rank 0 (IP 地址为 10.99.48.128)vllm serve$MODEL--data-parallel-size2--data-parallel-rank0\--data-parallel-address10.99.48.128 --data-parallel-rpc-port13345# Rank 1vllm serve$MODEL--data-parallel-size2--data-parallel-rank1\--data-parallel-address10.99.48.128 --data-parallel-rpc-port13345在这种场景下协调器Coordinator进程也会运行并与 DP rank 0 的引擎位于同一位置。核心思想解读这种模式的核心思想是**“完全去中心化”和“各自为政”**。你可以把每个vllm serve进程想象成一个独立的、自给自足的“小王国”。每个“小王国”DP rank都有自己的大门--port指定的 HTTP 端口。你作为“总指挥”在这些“小王国”的前面部署了一个“交通调度员”外部负载均衡器如 Nginx, Traefik, K8s Ingress 等。当一个外部请求到来时“交通调度员”会根据自己的规则比如轮询、或者查看哪个“小王国”的报告说自己比较空闲来决定把这个请求送进哪个“小王国”的大门。一旦请求进入某个“小王国”它就在内部被处理掉了vLLM 自身不再进行任何跨“王国”的负载均衡。与混合模式的关键区别混合模式 (Hybrid)外部 LB 把流量分发到节点。节点内部的 vLLM API Server 再智能地把请求分发给节点内的多个引擎。这是一个“外部粗分发 内部精细调度”的两级结构。外部模式 (External)外部 LB 直接把流量分发到每一个独立的引擎rank。vLLM 自身完全不参与负载均衡决策。每个vllm serve进程就是一个独立的、最小的服务单元。为什么 MoE 模型需要特别处理这是这篇文档中最关键、最微妙的一点。对于普通模型数据并行是“无共享”的每个 rank 都有模型的完整副本。它们之间不需要通信所以你可以把它们当作完全独立的服务器来运行根本不需要--data-parallel-size等参数。对于 MoE 模型情况完全不同。模型的“专家Experts”是被**分散sharded**在所有 DP rank 上的。例如rank 0 可能拥有专家 1-4rank 1 可能拥有专家 5-8。当处理一个请求时模型可能需要同时调用位于不同 rank 上的专家。这就意味着即使在外部负载均衡模式下这些看似独立的 MoE rank 之间也必须保持某种形式的通信和协调以同步它们的计算步骤比如“请求波次”。这就是为什么文档最后特意强调“协调器Coordinator进程也会运行”并且需要用--data-parallel-size,--data-parallel-address等参数来让它们找到彼此。Coordinator在这里的作用不是进行负载均衡而是确保所有 MoE rank 能够作为一个整体协同完成每一次推理计算。Hybrid Load Balancing 详解Hybrid Load Balancing 是 vLLM 数据并行部署的中间模式结合了内部和外部负载均衡的特点。每个节点运行自己的 API 服务器只处理本地数据并行引擎的请求通过上游负载均衡器分发用户请求。 1核心特征1. 架构设计本地调度每个节点的 API 服务器只调度本地引擎上游负载均衡外部负载均衡器如 ingress controller在节点间分发请求全局配置所有节点仍使用全局数据并行大小配置2. 必需参数# 配置验证逻辑ifself.data_parallel_hybrid_lbanddata_parallel_size_local1:# 自动切换到外部LB模式data_parallel_external_lbTrueself.data_parallel_hybrid_lbFalse[2](#22-1)### 3. API 服务器自动配置pythonelifis_hybrid_lb:args.api_server_countargs.data_parallel_size_localor1[3](#22-2)## 配置示例bash# Node 0vllm serve $MODEL--data-parallel-size4--data-parallel-size-local2\--data-parallel-start-rank0--data-parallel-hybrid-lb# Node 1vllm serve $MODEL--data-parallel-size4--data-parallel-size-local2\--data-parallel-start-rank2--data-parallel-hybrid-lb优势减少跨节点流量调度决策本地化避免节点间通信开销避免单点瓶颈每个节点独立处理请求无中心化瓶颈扩展性更好适合大规模 DP 部署场景 4实现机制系统通过data_parallel_hybrid_lb标志识别混合模式 5data_parallel_hybrid_lb:boolFalseWhether to use hybrid DP LB mode. Applies only to online serving and when data_parallel_size 0. Enables running an AsyncLLM and API server on a per-node basis where vLLM load balances between local data parallel ranks, but an external LB balances between vLLM nodes/replicas.Notes混合负载均衡模式特别适合多节点大规模部署它通过本地化调度和外部负载均衡的结合实现了高性能和高可扩展性的平衡。每个节点都需要暴露 API 端点因此不兼容--headless模式。 6Wiki pages you might want to explore:Overview (vllm-project/vllm)CitationsFile:docs/serving/data_parallel_deployment.md (L83-94)## Hybrid Load Balancing Hybrid load balancing sits between the internal and external approaches. Each node runs its own API server(s) that only queue requests to the>ifself.data_parallel_hybrid_lbanddata_parallel_size_local1:# Use full external lb if we have local_size of 1.logger.warning(data_parallel_hybrid_lb is not eligible when data_parallel_size_local 1, autoswitch to data_parallel_external_lb.)data_parallel_external_lbTrueself.data_parallel_hybrid_lbFalseFile:vllm/entrypoints/cli/serve.py (L89-90)elifis_hybrid_lb:args.api_server_countargs.data_parallel_size_localor1File:vllm/entrypoints/cli/serve.py (L148-149)ifengine_args.data_parallel_hybrid_lb:raiseValueError(data_parallel_hybrid_lb is not applicable in headless mode)File:vllm/config/parallel.py (L126-132)data_parallel_hybrid_lb:boolFalseWhether to use hybrid DP LB mode. Applies only to online serving and when data_parallel_size 0. Enables running an AsyncLLM and API server on a per-node basis where vLLM load balances between local data parallel ranks, but an external LB balances between vLLM nodes/replicas. Set explicitly in conjunction with --data-parallel-start-rank.

相关新闻

高频混压HDI排行榜,2026最新评测

高频混压HDI排行榜,2026最新评测

在2026年,5G通信、毫米波雷达以及AI加速卡席卷全球,工程师们面临着一个核心抉择,那就是怎样在确保高频信号完整性的情况下,不让预算花费得如同“天价”一般,答案就隐藏在 “高频混压HDI” 技术之中。简单来讲&#xff…

2026/5/17 8:02:42 阅读更多 →
2026算法备案|新手必看!零驳回实操指南,小白也能轻松过✨

2026算法备案|新手必看!零驳回实操指南,小白也能轻松过✨

宝子们!做互联网、AI相关创业或运营的,一定要重视2026年算法备案这件事🔥 最近后台收到超多姐妹吐槽,备案反复被驳回,不知道问题出在哪,甚至不清楚自己的产品到底用不用备案,白白浪费时间和精力…

2026/7/4 3:24:03 阅读更多 →
数据库迁移总踩坑?用 NineData 迁移评估,提前识别所有兼容性风险

数据库迁移总踩坑?用 NineData 迁移评估,提前识别所有兼容性风险

异构数据库迁移(Oracle/MySQL → PostgreSQL/He3DB),最容易因为对象不兼容、SQL 语法差异导致上线故障、业务中断。NineData 迁移评估,可在正式迁移前一键完成全量风险扫描,自动输出兼容度、改造方案与验证报告&#x…

2026/7/5 13:02:30 阅读更多 →

最新新闻

半小时构建全栈Todo应用:基于Spec Coding与AI辅助编程的实战指南

半小时构建全栈Todo应用:基于Spec Coding与AI辅助编程的实战指南

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 在实际前端和全栈开发中,一个常见的痛点是从零开始构建一个具备基础增删改查(CRUD)和用户交互的完…

2026/7/6 11:44:25 阅读更多 →
从零搭建Hermes代理与代码生成模型集成实战指南

从零搭建Hermes代理与代码生成模型集成实战指南

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 在实际项目中,自动化代理和代码生成工具的结合正成为提升开发效率的新范式。当“Hermes”作为智能代理框架,与…

2026/7/6 11:44:25 阅读更多 →
Swagger2 从入门到实战:构建优雅的API文档

Swagger2 从入门到实战:构建优雅的API文档

1. 什么是 Swagger2? Swagger2 是一套基于 OpenAPI 规范的开源工具集,用于设计、构建、文档化和消费 RESTful Web 服务。它通过注解和代码生成,让 API 文档与代码保持同步,极大提升了前后端协作效率。 2. 核心优势 代码即文档&…

2026/7/6 11:42:23 阅读更多 →
AWS SDK for Java 2.x 文件上传实战:3种授权方式对比与Spring Boot集成

AWS SDK for Java 2.x 文件上传实战:3种授权方式对比与Spring Boot集成

AWS SDK for Java 2.x 文件上传实战:3种授权方式对比与Spring Boot集成在当今云原生应用开发中,对象存储服务已成为不可或缺的基础设施。Amazon S3作为行业标杆,其Java SDK的V2版本带来了更现代化的API设计和性能优化。本文将深入探讨AWS SDK…

2026/7/6 11:42:23 阅读更多 →
AI漫剧制作全流程:从Stable Diffusion到剪映的工程化实践

AI漫剧制作全流程:从Stable Diffusion到剪映的工程化实践

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 你有没有想过,把脑子里那些天马行空的故事,直接变成一部有画面、有声音、有节奏的动画短片?不是用…

2026/7/6 11:40:21 阅读更多 →
SpringBoot+Vue+MySQL学生成绩管理系统:从零部署到核心模块深度解析

SpringBoot+Vue+MySQL学生成绩管理系统:从零部署到核心模块深度解析

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 每到期末,课程设计、毕业设计、大作业的DDL就像悬在头顶的达摩克利斯之剑。很多同学都面临一个困境:想做一个能…

2026/7/6 11:38:20 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻