0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

大促高并发系统性能优化实战--京东联盟广告推荐系统

京东云 来源:jf_75140285 作者:jf_75140285 2024-08-14 10:41 次阅读

当一个推荐系统面临高频、瞬时、大幅的流量突变时,如何在维持稳定性的同时,最小化推荐效果损失?



背景

618对京东来说是一场重要的营销盛会,大促将为业务各个层面带来爆发式增长。然而,超大规模的流量洪峰也对京东各系统提出了严峻考验。

京东联盟是京东的联盟营销平台,主要通过投放站外CPS广告来推广京东商品。联盟合作伙伴生成链接并在其他网站或社交媒体平台上推广,用户通过点击这些链接在京东购物,合作伙伴则获得销售提成(佣金)。京东联盟通过这种方式吸引流量,扩大平台的可见度和用户接触范围,实现拉新促活等目标。作为联盟业务流量的主战场,京东联盟推荐系统在大促期间面临着流量突变的巨大挑战。由于业务本身及营销活动和站外媒体引流推动的影响,大促期间推荐系统的流量呈现以下特点:

1.营销活动繁多且频率不一:系统流量波动频繁,难以预测。

2.营销力度及效果差异显著:冰点与爆点流量同时存在,流量分布极不均衡。

3.站外场景众多:目前已达数百个,不同场景流量的变化节奏各不相同。

4.红包活动具有秒杀特性:流量在急速拉升后断崖式下跌。例如,某次活动中,流量表现如下:

wKgZoma8GU-AH_pqAACZPPym4sM432.png

图中流量 QPS在19:59:57秒从3.7K开始增长,20:00:01秒达到峰值2.9W,随后的1分钟内逐步回落。流量在4秒内增长9倍,整个拉升和回降过程在1分钟内全部完成。



问题&挑战

面对上述流量变化的挑战,联盟推荐系统的备战面临以下重大障碍:

1.难以准确预估流量变化:导致无法提前准备充足的系统资源,系统有潜在的崩溃风险。

2.不同场景推荐策略与模型差异大:难以实现统一控制,管理和优化的复杂性升高。

3.流量瞬时大幅波动:需要系统具备秒级响应和调控能力,技术实现难度增加。



方案设计

因此,在推荐系统领域中,为了有效应对高频、瞬时、大幅的流量突变,我们需要一种“自适应”能力。这种能力应具备以下特性:

1. 差异化控制不同场景链路

场景识别与分级处理:系统应能够识别不同的业务场景和链路,对于不同重要性和紧急程度的场景进行差异化处理。例如,核心业务链路和次要链路可以有不同的降级策略,以确保关键功能的优先保障。

2. 自动化执行,无需人工干预

全自动化降级与恢复:通过智能化的监控和决策机制,系统能够在检测到流量异常时自动执行降级操作,并在条件恢复正常后自动恢复,无需人工干预,从而减少响应时间和人为错误。

3. 敏锐感知并随流量变化进行调整

实时监控与动态调整:系统应具备实时监控流量和性能指标的能力,并根据流量变化动态调整降级策略。这种敏锐的感知能力能够确保系统在流量突变时迅速做出反应,保持服务的稳定性。

4. 流量洪峰过后自动恢复至完整推荐

智能恢复机制:在流量洪峰过后,系统应能够自动检测流量回落情况,并逐步恢复至完整的推荐服务。这个恢复过程应是平滑且智能的,避免因过快恢复而引发新的性能问题。

5. 最小化推荐损失

精准降级与优化推荐:降级策略应尽可能精准,确保在降级过程中推荐质量和用户体验的损失最小化。通过优化推荐算法和策略,确保在资源受限的情况下仍能提供高质量的推荐服务。



方案实践

为实现上述自适应降级与恢复的能力目标,我们以如下思路进行方案设计。首先,监控不同场景流量的推荐耗时,根据性能变化将流量划分为主力流量和降级流量。接着,根据各召回通路、粗排、精排和重排的业务贡献及耗时,在总耗时限制下求得最优组合,确定降级链路。然后,通过调用链动态生成模块,生成实际的调用pipeline。最后,通过实时组织pipeline调用,完成整个降级推荐过程。

与此同时,在降级流量中,抽取小部分流量作为探测流量,检测流量洪峰是否已过去,以便及时进行降级恢复。以下是详细的设计实现:

1、实时高效性能感知

1.1、配置化超时阈值和守护协程

由于UMP统计数据对非0级黄金流程系统不开放秒级数据查询权限,并且UMP数据可能因流量不均衡等原因与具体实例机器上的性能存在较大差距,故而采用以下方法:

配置化超时阈值:为每个推荐场景和链路配置合理的超时阈值。

守护协程实时统计:在每个推荐服务实例上运行守护协程,实时监控请求的响应时间,并统计超时率。

1.2、威尔逊置信区间算法修正超时率

为了避免在流量低谷时的统计误差,引入威尔逊置信区间算法修正超时率。具体的Wilson修正公式如下:

wKgaoma8GVCAHLTYAABpjvJ8S-Y848.png

其中,P为当前统计的秒级超时率,WilsonP为置信超时率,z = 1.96(95%的置信水平)。

2. 差别化场景控制

•分场景统计耗时数据,配合各场景配置的耗时阈值,实现差别化控制。

3. 流量切分实现细粒度逐步降级

根据超时比例设置降级流量比例:只对降级流量进行降级,而非全部流量都降级。

策略决策:参考KMFP用户分层标签,对于不活跃和特征不丰富的用户,直接降级。对于高活跃和高价值用户,动态决策降级力度。

4. 动态线性规划推荐链路

根据各召回通路、粗排、精排和重排的CTCVR贡献值及其当前耗时,进行线性规划,在耗时限制下求得业务贡献最大化的最优解。

目标函数:最大化业务收益。

wKgZoma8GVGAJwLTAAAJomUAMKE658.png

约束条件:各模块的当前耗时不得超过设定阈值。

wKgZoma8GVKAU5bmAAAJAk3GVsI011.png

wKgaoma8GVeAMM8dAAACIp9birs767.png

其中,E1i为各召回通路的业务收益,E2、E3、E4分别为粗排、精排和重排的业务收益;T1i为各召回通路的当前耗时,T2、T3、T4分别为粗排、精排和重排的当前耗时(各模块的99耗时统计视情况配置为实时/近线方式,1~3秒);各W取值为0或1。问题即为求上述线性规划下的最优W组合,每当超时率发生阶跃变化时,重新计算最优解。

5. 实时组织pipeline调用

在得出上述W组合之后,由调用链生成器生成实际的调用关系pipeline,再交由管道调度器来组织调度完成整个推荐过程。

6. 小流量探测,阶梯式自动恢复

在降级状态下,周期性地从降级流量中抽取一定的小流量进行降级回弹测试,以监控是否流量回落或系统自动扩容。

回弹测试不通过:继续维持降级状态。

回弹测试通过:反向阶梯式逐级扩大回弹流量,直到全部降级流量都恢复至完全推荐。

7. 业务无关API,低成本移植

自适应降级模块设计了与具体业务无关的通用交互接口,包括收益与耗时数据输入、超时阈值设置、降级标志与降级组合查询等,可低成本移植到其他业务系统中。



在上述基础上,配合统一的限流防护和公司动态扩缩容技术,理论上联盟推荐系统可以做到足够的稳定性和推荐效果保障。以下是京东联盟自适应降级&恢复推荐系统的整体架构图:

wKgZoma8GVmAf12oAAHv2P1NtdE248.png

大促效果

本方案大促期间的业务效果有:

1.大促期间流量损失减少90%以上,对比以往活动高峰时的主动降级,系统可秒级完成自适应降级,结合serverless自动扩容策略,在分钟级别完成自动恢复。

2.联盟推荐系统的大促备战不再强依赖业务方评估峰值流量。

3.大促期间经历多次流量突变,均未依赖上游系统的降级保护。

4.大促期间零干预,零事故。



以上就是京东联盟广告推荐系统在大促期间保障稳定性和效果的相关工作,随着广告推荐业务进入存量时代的深水区,以及新推荐技术的不断涌现,我们要持续进化推荐系统,也欢迎大家一起交流学习。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 实时监控
    +关注

    关注

    1

    文章

    82

    浏览量

    13406
收藏 人收藏

    评论

    相关推荐

    京东广告投放平台整洁架构演进之路

    作者:京东零售 赵嘉铎 前言 从去年开始京东广告投放系统做了一次以领域驱动设计为思想内核的架构升级,在深入理解DDD思想的同时,我们基于广告
    的头像 发表于 09-18 10:26 358次阅读
    <b class='flag-5'>京东</b><b class='flag-5'>广告</b>投放平台整洁架构演进之路

    一文了解电商大系统可用保障思路-献给技术伙伴们

    本文面向受众可以是运营、可以是产品、也可以是研发、测试人员,作者希望通过如下思路(知历史->清家底->明目标->定战略->做战术->促成长)帮助大家能够了解电商大系统可用保障,减少哪些高深莫测
    的头像 发表于 08-22 15:04 39次阅读
    一文了解电商大<b class='flag-5'>促</b><b class='flag-5'>系统</b>的<b class='flag-5'>高</b>可用保障思路-献给技术伙伴们

    并发物联网云平台是什么

    并发物联网云平台是一种能够处理大量设备同时连接并进行数据交换的云计算平台。这种平台通常被设计用来应对来自数以万计甚至数十亿计的物联网设备的并发请求,保证系统的稳定性和响应速度。 首先
    的头像 发表于 08-13 13:50 119次阅读

    京粉智能推广助手-LLM based Agent在联盟广告中的应用与落地

    一、前言 拥有一个帮你躺着赚钱的助手,听起来是不是有点心动?依托于京东联盟广告平台,借助AIGC大语言模型出色的理解、推理、规划能力,我们推出了京粉智能推广助手机器人,帮助合作伙伴拥有自己的智能助理
    的头像 发表于 08-12 14:33 168次阅读
    京粉智能推广助手-LLM based Agent在<b class='flag-5'>联盟</b><b class='flag-5'>广告</b>中的应用与落地

    并发系统的艺术:如何在流量洪峰中游刃有余

    前言 我们常说的三并发可用、高性能,这些技术是构建现代互联网应用程序所必需的。对于京东
    的头像 发表于 08-05 13:43 101次阅读
    <b class='flag-5'>高</b><b class='flag-5'>并发</b><b class='flag-5'>系统</b>的艺术:如何在流量洪峰中游刃有余

    三菱PLC扫描周期对控制系统性能的影响

    同样具有不可忽视的作用。本文将从扫描周期的定义、影响因素、对控制系统性能的具体影响以及优化方法等方面进行详细阐述,以期为读者提供深入的理解和认识。
    的头像 发表于 06-18 10:02 805次阅读

    生成式推荐系统京东联盟广告-综述与应用

    的日常生活,如何用LLM有效重塑RS是一个有前景的研究问题[20, 25]。 这篇文章从生成式推荐系统京东联盟广告各自的背景出发,引出二者结合的原因和方式。接着,对现有的流程和方法进行了总结和梳理。最后,介绍了我们在
    的头像 发表于 06-13 15:41 318次阅读
    生成式推荐<b class='flag-5'>系统</b>与<b class='flag-5'>京东联盟</b><b class='flag-5'>广告</b>-综述与应用

    PCIe配置优化:提升系统性能的关键步骤

    任何 PCI 设备都加载了某些属性。其中一些属性对性能至关重要。设备的 PCIe 属性是通过系统和设备能力之间的协商来设置的。
    的头像 发表于 04-09 09:46 1013次阅读
    PCIe配置<b class='flag-5'>优化</b>:提升<b class='flag-5'>系统性能</b>的关键步骤

    通推出首个支持AI优化的Wi-Fi 7系统FastConnect 7900

    今日,通技术公司推出通FastConnect 7900移动连接系统,是行业首个支持AI优化性能并在单个芯片中集成Wi-Fi 7、蓝牙和超宽带技术的解决方案。
    的头像 发表于 02-26 16:41 432次阅读

    Flyover电缆系统性能分析

    Samtec的Flyover电缆系统旨在将信号从印刷电路板上取下,以改善信号完整性、提高设计灵活性并优化散热性能
    的头像 发表于 01-17 10:23 348次阅读
    Flyover电缆<b class='flag-5'>系统性能</b>分析

    噪声如何影响高速信号链的总动态系统性能

    电子发烧友网站提供《噪声如何影响高速信号链的总动态系统性能.pdf》资料免费下载
    发表于 11-27 11:59 1次下载
    噪声如何影响高速信号链的总动态<b class='flag-5'>系统性能</b>

    多通道数据采集(DAQ)系统性能优化

    电子发烧友网站提供《多通道数据采集(DAQ)系统性能优化.pdf》资料免费下载
    发表于 11-23 16:37 2次下载
    多通道数据采集(DAQ)<b class='flag-5'>系统</b>的<b class='flag-5'>性能</b><b class='flag-5'>优化</b>

    SiC MOSFET的封装、系统性能和应用

    器件,能够像IGBT一样进行高压开关,同时开关频率等于或高于低压硅MOSFET的开关频率。之前的文章中,我们介绍了 SiCMOSFET特有的器件特性 和 如何优化SiC栅极驱动电路 。今天将带来本系列文章的第三部分 SiC MOSFET的封装、系统性能和应用 。 封装 W
    的头像 发表于 11-09 10:10 683次阅读
    SiC MOSFET的封装、<b class='flag-5'>系统性能</b>和应用

    LDO 基础知识:噪声 - 前馈电容器如何提高系统性能

    LDO 基础知识:噪声 - 前馈电容器如何提高系统性能
    的头像 发表于 10-17 16:43 705次阅读
    LDO 基础知识:噪声 - 前馈电容器如何提高<b class='flag-5'>系统性能</b>?

    常用的linux系统性能监控命令

    uptime(系统整体性能评估) 这里需要注意的是:load average这个输出值,这三个值的大小一般不能大于系统CPU的个数 那么如何查看cpu的个数呢? 查看系统cpu的信息
    的头像 发表于 10-09 15:35 755次阅读
    常用的linux<b class='flag-5'>系统性能</b>监控命令