移动性能测试 视频点播业务过载保护方案的测试实践

优测云服务平台 · 2025年02月06日 · 2031 次阅读

前些日子,大批美国网友 “涌入” 小红书,小红书几乎一瞬间就登顶了美区 App Store 免费榜。互联网面向用户的业务流量往往无法提前准确判断,总会面临突发流量,造成服务承受平时数倍的压力,无法及时处理请求。过载保护的目标是服务过载情况下,仍能尽其所能对外服务,不至于系统瘫痪,从而保障用户体验和服务质量。

今天,我们就以社交平台核心的视频点播业务场景为例,为大家分享如何使用压力测试工具,对服务中过载保护方案针对性地进行测试,从而实现方案的选型和日常服务的性能优化测试。希望借此帮助近期类似需求的同学,随时随地发起测试,节省大家的时间!

视频点播业务的过载保护特点

短视频业务的服务采用微服务架构,在微服务中由于服务间相互依赖很容易出现连锁故障导致雪崩。因此,在接入过载保护时需要考虑到微服务的复杂性,即组合过载问题。

基于这一的特点,视频点播在过载保护上需要达到 2 个目标:
1.是过载保护的能力具有通用性,能适应大多数业务场景;
2.是除了点对点的过载保护能力外,还能解决微服务链式场景和服务多扇出场景下的过载保护。

过载保护方案的测试实践

这里以 tRPC-Go overload control 和 tRPC-Robust 2 款业界常见的过载保护为例,来分享如何开展针对性压力测试,从而确定最适合自身业务场景的方案,其中主要测试对象和参数对比如下:
●接入插件/未接入插件
●服务过载/服务未过载
●单个服务过载/组合过载
●压测时间 3 分钟/10 分钟

1.压测方案设计

  • 单个服务过载测试
  • 组合过载测试(仅开 server 端)
  • 压测时间统一分为 3 分钟和 10 分钟
  • 测试需覆盖的要点:
    1. 服务原性能:没有接入插件,服务过载,成功率
    2. 接入插件:在没有过载情况下,对服务性能影响;服务过载,成功率
    3. 服务过载可以配置(1.5 倍,3 倍,5 倍等,极限下看服务成功率到 0)

2.实施步骤和提效技巧 ( 这里使用的是优测压力测试工具)

STEP 1:测试数据准备与协议同步

在实施压测之前,需要准备大量的测试数据模拟用户场景,优测后台一体化工具支持协议文件自动与 rick 平台同步,省去反复手动上传协议文件的烦恼。

Tips:在新建服务的时候只需勾选 rick 平台同步,每次协议文件更新,会自动推送到优测平台非常方便。

STEP 2:测试场景构造与任务配置

创建的测试场景可自动关联协议文件,并支持参数化配置,添加业务断言非常方便,同时测试场景不仅可用于压力测试,也可复用于接口测试、接口监控等,极大的提高测试效率。

a. 测试场景:自动生成的场景用例,可在全局变量中找到数据文件,包含流量数据的详细请求信息。同时通过出参定义和请求结果断言快速添加自定义断言。

b. 压测任务:基于同一测试场景,配置不同的测试任务,主要在 QPS 的配置上,节点请求(向哪个容器节点/集群发起请求)等定制化部分做修改即可。
c. 手动调压:为提高压测效率,我们选择了手动调压模式,即在压测过程中可以根据服务性能数据随时调整阈值,即刻生效。

STEP 3:报告分析对比与持久化存储

优测后台一体化工具提供非常友好的可视化报告。压测任务完成后,可以方便地看到该场景下的所有历史报表和数据;报告对比功能,可以同时查看多次压测结果数据,能够方便直观地进行各种方案的数据分析和对比;与其他平台相比,后台一体化最大优势是将报告结果数据持久化存储,为下次压测做为参考。

通过测试结果,可以对比分析哪款方案整体表现更优:

  1. 固定 QPS 压测,对比方案的更稳定一点、成功率,以及耗时;判断时延是否在业务可接受范围内
  2. 不断变化 QPS 压测,可以测试出哪款方案最大化服务性能,更为及时探测到过载并启动保护,当过载结束,服务也能比较快恢复。

以上是本次的分享,希望能够对大家有所帮助!

本文未注明其它来源的内容,其版权优测云服务平台所有,未经原作者允许不得转载本文内容。

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册