干货 | 计算密集型服务的负载均衡策略

DeepSeek V3时代:MoE架构下的高效LLM推理优化实践 本文深入探讨了在DeepSeek V3引领的MoE架构时代,如何高效进行LLM推理优化的实战经验。文章聚焦于MoE架构的核心机制,如细粒度专家划分与动态路由,并详细解析了PD分离架构、并行策略调配、通信计算重叠等关键优化技术,旨在帮助开发者解决大规模MoE模型部署中的负载均衡、通信开销等核心挑战,提升推理性能与资源利用率。 阅读详情

作者简介

 

罗茂林,携程国际机票后台研发总监,主要负责国际机票引擎的研发工作。致力于系统性能优化和研发效率提升。

一般情况下,在计算密集型服务中,即使处理单个请求也需要使用到服务器的所有CPU。如果单台服务器连续接收到两个请求,要么两个请求互相争抢CPU,要么后来的请求排在前面的后面等待处理。最终,会导致平均处理时间变长。常规的负载均衡策略(如轮询、随机等)下,负载均衡器不关心服务器的负载情况,这就很容易造成服务器同时收到多个请求,从而使服务器的服务质量下降。

      

一、背景

有一天,携程国际机票查询引擎经过一次改造后,虽然平均响应时间得到了提升,但是响应时间也有非常大的波动。从监控图上看,非常明显的尖刺持续存在。如下图:

经过分析,我们发现这次改造深度优化了服务的并行计算能力,使得引擎成为了一个完全的计算密集型服务,它的最大并发处理能力为1。然而,我们却没有相应的修改负载均衡策略,而是继续使用的轮询策略。

对于计算密集型服务,如果使用轮询策略,有如下三种情况:

理想情况是连续两个请求之间无间隔、无重叠,既下一个请求刚好在上一个请求处理完成的时刻到达。这种情况下,后来的请求没有等待时间,服务器也没有空闲时间,得到了充分的利用。

通常情况下,由于请求的到达普遍服从泊松分布,如果使用轮询、随机等负载均衡策略,单机的请求也服从泊松分布,即连续两个请求间总会存在间隔或者重叠,导致服务器资源空闲或者请求响应时间上升。

在极端情况下,如果某个请求的处理时间特别长,后续的一大串请求将产生积压,最终导致这些请求的响应时间也变得特别长,甚至超时。

我们发现,引擎的响应时间尖刺是由极端情况的case造成的。引擎有一类请求A,它qps不高,但是却需要CPU满负荷运转长达几秒甚至10秒才能算出结果。另有一类请求B,它qps非常高,只需要CPU满负荷运转几十毫秒就能算出结果。

当一台服务器正在处理一个A类请求时,在接下来的几秒内,它将继续收到几十个B类请求,而且所有的B类请求都要排队,直到A类请求完成。这就导致大批B类请求的响应时间由应该的几十毫秒升高到几秒,从而造成了严重的尖刺。

二、pooling

为了解决这个问题,我们使用了一种新的负载均衡策略,在这种策略下,服务器不再被动的接收请求,而是主动的去获取请求,这种方式非常容易做到服务器同一时刻只处理一个请求。在我们内部,这种方式被称为pooling(它和线程池类似,可以叫做服务器池)。

在pooling模式中,有三个主要角色:submitor、queue、worker。

  • submitor

submitor一方面用于接收请求方的调用,它收到请求后,不直接处理请求,而是把这个请求提交给queue。

另一方面,submitor接收worker的回调,submitor收到worker的结果后,直接把它转发给请求方。

  • queue

pooling的关键是引入了一个queue,queue是一个全局唯一队列,用于暂时缓冲请求。

我们使用了redis的list结构来实现queue。入队操作为lpush,出队操作为brpop。brpop是阻塞式的操作,当队列为空时,brpop会阻塞直到队列非空。队列非空时,如果有该队列有多个brpop操作阻塞,只有其中一个会被唤醒并且返回数据。

  • worker

worker是实际的请求处理者。在旧的模式下,worker是被动接收请求。在pooling模式下,worker要主动去queue获取请求。worker启动时,要创建一个线程,这个线程启动后,便进入一个无限循环,循环的主要内容为:

1)从queue获取一个请求,当queue没有请求时,worker被阻塞。

2)worker处理这个请求。

3)把结果返回给submitor。

如此往复。可以看到,worker要么正在处理一个请求,要么正在等待一个请求。

三、效果

国际机票查询引擎的负载均衡策略由轮询改为pooling后,效果非常好。系统的平均响应时间降低了大约20%,并且完全消除了响应时间尖刺。

轮询方式:

pooling方式:

【推荐阅读】

 

 “携程技术中心”公众号

  分享,交流,成长

SAP财务凭证实战:如何用Coding Block快速添加客户化字段(附ABAP代码) 本文详细介绍了在SAP财务凭证中利用Coding Block技术快速添加客户化字段的完整流程,包括技术架构解析、实战配置步骤(OBC4/OB41)及ABAP增强开发。通过案例演示如何高效扩展字段(如增长曲线类型),实现全流程集成且无需修改数据表,显著提升财务凭证的灵活性和可追溯性。 阅读详情

相关推荐

SKILL实现电路virtuoso原理图schematic中引脚pin的net自动打上pin label

SKILL实现电路virtuoso原理图schematic中引脚pin的net自动打上pin label

qq_41510657的博客 2612

计算密集型服务性能优化

性能优化是一个庞杂的话题,不同的场景,不同的视角都会得到不同的理解。 比如:有的为了提高吞吐,有的为了降低延迟,有的为了节省资源。 他们并不是同一个问题,有时可以牺牲一定的延迟来换取更高的吞吐,比如批量处理; 有时可以用更多的存储空间来换取更低的延迟,比如哈希表……

HELLOW,文浩 696

大疆智图002:大疆智图倾斜摄影建模流程

本文主要介绍大疆智图倾斜摄影建模流程,包括新建工程、成果路径设置、导入照片、第一遍空三、像控刺点、第二遍空三、精度报告查看、三维重建等流程。

qq_31762031的博客 1万+

submit 和 button的区别

 ===============submit 和 button的区别=================================== submit:特殊的button,会自动将表单的数据提交 ,onClick方法不加return 会自动提交,并不会起到约束的作用,所以,使用submit时需要验证请加 return 例:     ,在JS中判断的时候 写return true 或者 ret

多多的专栏 4417

Android 跨进程通信-(一)Binder概念引入

前言 主要对Android中的跨进程通信进行总结下,这篇先梳理下里面的涉及的一些概念 一 多进程 1.进程与线程 进程:系统中正在运行的一个应用程序,某个程序一旦运行就是一个进程,是资源分配的最小单位; 线程:程序执行的最小单位,包含在进程中,一个进程可以包含多个线程。 2.Android应用中的多进程 (1)dalivk虚拟机 Android系统的底层任务管理以及驱动都是基于Linux系统。一个Android系统其实就是一个Linux系统,通过adb shell进入连接的手机,就可以看到Li

nihaomabmt的专栏 1103

ESD笔记(三)_常用ESD保护电路优缺点

根据ESD防护器件的TLP I-V特性我们可将ESD器件分为回滞类和非回滞类两种; 回滞类的ESD器件包括NPN三极管、栅极接地 NMOS ( GGNMOS, Gate-grounded NMOS )、可控桂(SCR, siliconcontrolled rectifier)等。 非回滞类的ESD器件包括二极管、二极管串、沟道工作的MOS管、PNP三极管、栅极接电源的PMOS(GDPMOS)等,与回滞类ESD器件相比,其TLP曲线没有负阻区的存在。 常用于ESD防护的器件包括PN结二极管、GGN

weixin_47139649的博客 1万+

CPU密集型计算、IO密集型计算、多进程、多线程

CPU密集型也叫计算密集型,是指I/O在很短的时间就可以完成,CPU需要大量的计算和处理,特点是CPU占用率相当高。例如:压缩解压缩、加密解密、这规则表达式搜索I/O密集型值得是系统运作大部分的状况是CPU在等I/O(硬盘/内存)的读、写操作,CPU占用率仍然较低。例如:文件处理程序、网络爬虫程序、读写数据库程序。

llf000000的博客 1319

AG32VF407直流电流采集仪设计:从1uA到10A宽范围采样与FPGA加速方案

本文详细介绍了基于AG32VF407芯片的直流电流采集仪设计方案,实现了从1uA到10A的宽范围采样。方案采用低噪声电源、精密运放调理、高速比较器自动档位切换及高精度ADC同步采样,并重点阐述了利用AG32VF407片内FPGA实现硬件加速以提升性能的架构思路,为精密电流测量提供了完整的硬件与FPGA加速解决方案。

weixin_33245447的博客 310

计算密集型服务 性能优化实战始末

背景项目背景worker 服务数据链路图worker 服务消费上游数据(工作日高峰期产出速度达近 200 MB/s,节假日高峰期可达 300MB/s 以上),进行中间处理后,写入多个下游。在实践中结合业务场景,基于快慢隔离的思想,以三个不同的 consumer group 消费同一 Topic,隔离三种数据处理链路。面对问题worker 服务在高峰期时 CPU Idle ...

梦醒人间 782

FOC电机控制中电流采样延迟补偿的原理和方法

摘要: FOC电机控制中,电流采样、计算与PWM更新存在固有延迟(约1.5个PWM周期),导致相位滞后,限制电流环带宽。主流补偿方法包括: 一阶前向预测法:基于历史电流值预测未来电流,抵消延迟,工程应用广泛; 相位超前补偿:通过s/z域校正器设计实现等效预测; 状态观测器法(如龙伯格观测器):通过电机模型闭环估计状态,兼具噪声抑制和参数辨识能力,但复杂度高。实际需注意参数敏感性、离散化精度及延迟时间校准,避免过补偿风险。一阶预测法因平衡效果与复杂度成为工业首选。

jifengzhiling的博客 2232

YOLO26涨点改进 | YOLO联合Mamba火热发论文改进篇 | CVPR 2025 | 引入EfficientViM 新型轻量级视觉Mamba,高效捕捉全局依赖,含二次创新、适合目标检测任务

本文提出EfficientViM,一种基于HSM-SSD的新型轻量级视觉Mamba架构,用于改进YOLO26目标检测模型。该模块通过压缩隐藏状态、多阶段特征融合和内存优化设计,在降低计算复杂度的同时提升检测精度。实验表明,EfficientViM在ImageNet-1K上实现了最佳的速度-精度平衡,相比SHViT模型性能提升0.7%且速度更快。文章详细介绍了模块原理、网络结构、核心代码实现及YOLO26集成方法,提供两种改进方案,适用于资源受限环境下的实时目标检测任务。

Ai缝合怪、助力小伙伴高效发论文 176

云计算之负载均衡

云计算之负载均衡技术   负载均衡(Load Balance)建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。 负载均衡有两方面的含义:首先,大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间;其次,单个重负载的运算分担到多台节点设备上做并行处理,每个

hui540的专栏 6551

YOLOv11【第二章:核心模块进阶篇·第28节】DynamicHead动态检测头设计!

🏆 本文收录于专栏 《YOLOv11实战:从入门到深度优化》。本专栏围绕 YOLOv11 的改进、训练、部署与工程优化 展开,系统梳理并复现当前主流的 YOLOv11 实战案例与优化方案,内容目前已覆盖 分类、检测、分割、追踪、关键点、OBB 检测 等多个方向。

**My Coding Family** 1万+

服务器负载不高 响应慢_计算密集型服务的负载均衡策略

一般情况下,在计算密集型服务中,即使处理单个请求也需要使用到服务器的所有CPU。如果单台服务器连续接收到两个请求,要么两个请求互相争抢CPU,要么后来的请求排在前面的后面等待处理。最终,会导致平均处理时间变长。常规的负载均衡策略(如轮询、随机等)下,负载均衡器不关心服务器的负载情况,这就很容易造成服务器同时收到多个请求,从而使服务器的服务质量下降。一、背景有一天,携程国际机票查询引擎经过一次改造后...

weixin_39614546的博客 242

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

【稀缺干货】资深专家亲授:OpenMP循环调度策略选择的黄金法则

掌握OpenMP的循环并行化效率提升秘诀,资深专家详解循环调度策略选择方法。覆盖静态、动态与指导性调度的适用场景及性能优化要点,助你精准匹配负载类型,最大化并行效率,值得收藏。

LogicNest的博客 710

AI应用架构师干货:智能客服系统的4种负载均衡架构选型

计算负载异构性:NLP任务(如BERT模型推理)的计算复杂度远高于简单的CRUD操作,单次请求可能需要数十毫秒到几秒的计算时间,且资源消耗高度非线性。流量模式复杂性:用户咨询具有明显的时段性、周期性和突发性,如工作日9:00-11:00、15:00-17:00形成双峰模式,促销活动期间流量呈指数级增长。服务质量差异化:不同用户等级、不同业务场景对响应时间和准确率有不同要求,如VIP客户咨询需优先处理,支付相关问题需更高的准确率保障。资源成本敏感性。

Agentic AI人工智能与大数据正在引领一场新智能科技革命。 749

Java-80 深入浅出 RPC Dubbo 动态服务降级:从雪崩防护到配置中心秒级生效

动态服务降级是一种在系统高压或异常情况下,保障核心业务可用性的关键策略。**它通过设定触发条件(如高CPU、响应慢、错误率高等)自动或手动屏蔽非核心功能、简化数据或直接返回默认值,防止系统雪崩。典型场景包括电商大促、秒杀活动或第三方服务异常等。Dubbo支持多种降级方式,如mock=force:return+null和mock=fail:return+null,并可通过配置中心实现动态控制与秒级生效。结合限流、熔断等机制,服务降级是构建高可用分布式系统的重要手段。

谢谢你的喜欢 我们一起无限进步 2127

spring cloud 微服务

微服务更多干货spring cloud 微服务spring cloud 知识点服务发现与服务注册定制Rabbon客户端负载均衡策略Spring Cloud Feign使用1SpringCloud Feign使用二SpringCloud Hystrix 实现SpringCloud超时机制、断路器模式简介Spring Cloud Eureka HA 高可用SpringCloud TurbineSpri...

架构师的成长之路的博客 1万+

【限时干货】Dify私有化环境中GPU监控的最佳实践路径

掌握Dify私有化部署的GPU资源占用监控方法,有效解决资源过载与性能瓶颈。适用于AI模型推理、多用户任务调度等场景,通过Prometheus+Grafana实现细粒度监控,提升资源利用率与系统稳定性,运维优化必看,值得收藏

PixelShoal的博客 591

大模型推理优化:从模型压缩到服务性能调优(附代码)

2026年,大模型推理优化的核心是“全链路协同、性价比优先”——模型压缩解决“能不能部署”的问题,引擎优化解决“能不能快速推理”的问题,服务调优解决“能不能稳定落地”的问题,三者缺一不可。本文从模型压缩(量化、稀疏化)、引擎优化(TensorRT-LLM、ONNX Runtime)到服务部署调优,全程搭配可直接复制运行的代码,覆盖国产大模型实操场景,避开行业常见误区,无论是新手还是资深开发者,都能快速上手落地。

Bruce2048的博客 958

【技术干货】常规ML推理vs LLM推理:5大核心差异与解决方案详解(建议收藏)

文章探讨了大型语言模型(LLM)推理与常规机器学习推理的差异及挑战。LLM推理面临连续批处理、预填充-解码两阶段资源需求、KV缓存管理、前缀感知路由和模型分片等独特问题。针对这些挑战,文章介绍了连续批处理、预填充-解码分解、Paged Attention、前缀感知路由和专家并行等解决方案,以优化LLM推理性能和资源利用率。

2401_85373691的博客 773

AI Dynamo架构深度解析:MapReduce思想在大模型推理中的创新应用 | 收藏级干货

最近在深入研究 AI Dynamo 项目时,我发现一个有趣的现象:尽管它是一个先进的 AI 推理框架,其核心优化思想却与我们所熟知的传统分布式架构优化,例如 MapReduce,有着异曲同工之妙。这篇文章将结合 AI Dynamo 的技术文档,探讨其如何借鉴经典分布式计算理念,来应对大语言模型(LLM)推理中的挑战。

WANGJUNAIJIAO的博客 901

HoRain云--Nginx性能优化全攻略

本文介绍了Nginx服务器性能瓶颈的系统化排查与优化方法。通过流程图展示了从发现问题到优化预防的完整闭环流程,包括:1)通过监控工具检查CPU、内存等关键指标;2)分析Nginx活动数据和日志;3)针对不同瓶颈实施优化策略,如调整worker配置、启用缓存等;4)建立长效预防机制,包括监控告警、压力测试等。文章强调Nginx性能问题往往是系统性问题的体现,需要从整体角度进行排查优化,并提供了具体的技术实现方案和配置建议。

2401_86544677的博客 378

性能瓶颈分析:常见的一些解决办法

我在互联网行业已经做了近十年了,大大小小的压测已经做过无数次,之前也遇到过各种类型的性能问题,下面我将从性能瓶颈的影响到常见的解决办法来一一进行分析,可能有写的不对的地方欢迎大家赐教。

software_test010的博客 1291

Linux 性能优化:轻松入门

Linux 系统作为众多关键技术基础设施的 核心,其性能优化的重要性不言而喻。掌握 Linux 系统 性能优化的策略和技巧,都是提升系统效率、保障服务稳定性的关键。本文将带领大家深入探索Linux系统性能优化的 多个维度,从磁盘的 RAID 模式选择到 CPU 和内存的精细调整,再到网络性能的全面提升,每一环节都旨在帮助您的系统达到更高的 运行效率。

云端梦留白的博客 2214

立知lychee-rerank-mmGPU算力优化:A10/T4/V100多卡适配指南

本文介绍了如何在星图GPU平台上自动化部署立知-多模态重排序模型lychee-rerank-mm镜像,并针对不同GPU进行算力优化。该模型能高效地对图文混合内容进行相关性打分与排序,典型应用于提升搜索引擎或推荐系统的结果精准度,帮助用户快速筛选出最相关的内容。

FrostfirePhoenix43的博客 611

VPS、VDS与独立服务器:技术原理、核心差异与选型指南

虚拟化技术是云计算和现代IT基础设施的基石,它通过在单一物理硬件上创建多个隔离的虚拟环境,实现了资源的高效利用与灵活分配。其核心原理主要分为基于操作系统的容器化虚拟化(如LXC)和基于硬件的完全虚拟化(如KVM),前者开销低但隔离性较弱,后者则提供更强的安全性与完整的系统隔离。这项技术的核心价值在于能够以更低的成本和更高的弹性,为开发者和企业提供可快速部署的计算资源。在实际应用中,根据资源隔离的强度与性能保障的不同,衍生出了VPS、VDS等不同服务模型。VPS通常采用资源共享模式,可能存在超售,适合个人网站

weixin_34189116的博客 518
上一篇: 干货 | XGBoost在携程搜索排序中的应用
下一篇: 干货 | 携程云原生基础设施演进之路
携程技术
博客等级 码龄10年 3716粉丝 324原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值