全链路压测:构建三大模型

article/2025/11/5 19:09:38

压测前言

上篇文章主要介绍了在全链路压测准备阶段,最核心的一点:核心链路相关的知识。

梳理核心链路的一个重要目的是获得流量模型。但在全链路压测中,除了流量模型,业务模型和数据模型一样重要。这篇文章,为大家介绍如何构建这三大模型。

业务场景模型

前文中有提到:核心业务对应的核心应用中,保证达成企业利润实现的最主要请求流量经过的路径,即是核心链路。理解这句话之后,就能很好的理解业务场景模型了。下图是一个常见的电商双11大促时候的业务场景模型图,我以这个思维导图为例来做分析说明。

图片

一般来说梳理业务场景模型大概有如下几个步骤:

根据业务特性确定本次大促主要涉及的业务范围(电商一般是交易、活动和库存业务);

确定涉及业务范围中,对应核心业务各有哪些(这里要对业务进一步的细化,如上图);

根据梳理出的核心业务场景,进一步的进行打标赋权(假设流量过高,哪些可以放弃);

上面提到的细化业务场景以及打标签赋予权重,是为了更明确的知道,哪些是最核心不能出问题的场景。

峰值流量模型

预估的流量模型要以峰值流量场景来预估,否则很可能由于错误的预估导致准备不足而致使大促期间线上出现问题。这不仅是一个技术和监控的问题,还要综合考虑本次大促期间业务目标以及业务转化率的因素。举个例子:

业务目标:双11当天预估平均客单价500,单日GMV10亿,支付订单量为200W;

转化技术指标:

假设日常支付订单量为50W,支付转化率为40%,订单支付QPS峰值为200。预估大促时的支付转化率为60%,则可得:大促峰值订单支付QPS为(200/40%)60%(200W/50W)=1200QPS。这个1200QPS是个保底数值,一般为了留有一定冗余空间,会上浮30%,即订单支付的QPS预估为1500;

电商的导购浏览下单支付转化链路一般为:首页→商品详情→创建订单→订单支付→支付成功,这个过程是类似漏斗的一个转化逻辑。假设首页→商品详情转化率为40%,商品详情→创建订单转化率为40%,创建订单→订单支付转化率为40%,那么可得:创建订单QPS为1500/40%=3750,商品详情QPS为3750/40%=9375,首页QPS为9375/40%=23437;

按照核心链路之间的依赖调用关系,借助监控和trace追踪,最终得到本次大促期间,所有涉及的核心应用及核心链路的QPS数值。

最终我们会得到类似如下的一个流量模型图:

图片

压测数据模型

关于压测数据模型,实际上可以分为2个部分:压测模型和数据模型。

压测模型

以我个人经验,压测模型主要可以从如下几个维度去划分:

1.单机单接口基准(接口级别)

单机单接口的压测,可以通过梯度增加请求的方式,观察随着请求的增加,其性能表现&资源损耗的变化。在目前的微服务架构下,整体链路的性能瓶颈,取决于短板(木桶原理)。因此,单机单链路基准测试的目的,是在全链路压测开始前进行性能摸底,定位排查链路瓶颈。

2.单机混合链路场景(服务级别)

单机混合场景,大多还是通过梯度增加请求的方式,观察服务级别的性能表现。

单机混合链路压测的目的,是排查上下游调用依赖的瓶颈,并以此测试结果作为限流预案的基准值。重点关注3个指标:

安全水位(CPU50%)

告警水位(CPU70%)

最大水位(CPU≥90%&Load5≥150%)

3.生产全链路压测场景(生产集群)

针对生产集群的全链路压测,需要涉及的压测模型较多,一般有如下几种:

①.梯度加压模型:为了探测集群模式下系统的最大吞吐量(也避免压垮服务,造成事故);

②.固定并发模型:验证系统长期处于负载下的稳定性;

③.脉冲并发模型:探测系统的健壮性、验证限流熔断等服务保护措施的正确性&可用性;

④.超卖验证模型:主要针对一些限时抢购&秒杀的场景;一般这种场景,会涉及到分布式锁、

缓存、数据一致性等技术点;玩不好的话,容易造成客诉、资损、甚至服务异常宕机!

数据模型

聊完了压测模型,接着聊聊数据模型。数据场景,很多时候往往被忽视,但实际上数据场景更加重要。如果测试过程中采用的数据不准确,那测试结果往往出现较大偏差。关于测试所需数据,可参考如下几点:

在这里插入图片描述
以我个人经验,数据模型中测试数据主要分为如下几种类型:

基础数据:也称之为铺底数据,铺底数据目的是与线上保持一致(至少数量级一致),再结合线上增长率,确认预埋数据量级及预埋方式。涉及到压测时需要校验的数据,需要在铺底的时候就要精细化的设计,包括数据大小,数量,分布等。

热点数据:需要了解被测接口的实现逻辑,确认以下信息:

是否有热点数据相关的操作:比如说所有用户秒杀同一件商品;

不同类型数据处理逻辑有差异时,需通过测试数据多样化提高性能测试代码覆盖率;

缓存数据:要确认是否有缓存,缓存大小为多少(排除大key,一般来说142W的key占Redis一个G的内存);

秒杀抢购相关数据,一般来说都是进行队列处理,将该类型数据放入缓存中进行处理来应对高并发。再比如用户登录所需的token等数据,在生产压测时,需要提前将其预热到缓存中,避免压测时用户服务成为瓶颈;

喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一 键三连哦!


http://chatgpt.dhexx.cn/article/OtJCbZiZ.shtml

相关文章

揭开,字节跳动全链路压测的实践之路

全链路压测指的是基于实际的生产业务场景、系统环境,模拟海量的用户请求和数据对整个业务链进行压力测试,并持续调优的过程。常用于复杂业务链路中,基于全链路压力测试发现服务端性能问题。 随着公司业务的不断扩张,用户流量在不…

爆肝整理,性能测试-全链路压测与普通压测区别总结,进阶高级测试...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 抛出一个问题&…

大厂钟爱的全链路压测有什么意义?四种压测方案详细对比分析

全链路压测? 基于实际的生产业务场景和系统环境,模拟海量的用户请求和数据,对整个业务链路进行各种场景的测试验证,持续发现并进行瓶颈调优,保障系统稳定性的一个技术工程。 针对业务场景越发复杂化、海量数据冲击&a…

全网最全,性能测试-全链路压测问题总结,一篇概全...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 全链路压测可以给…

全链路压测之全链自动化

1.1 行业内全链路压测方案对比 方案一:流量混布, 存储隔离, 线上施压 对线上服务压测,压测前根据容量预估和压测目标,对线上服务进行扩容和cpu、mem等相关配置的变更。 压测产生的数据与线上真实数据做隔离,采用影子库表的方式&a…

稳定性全系列(二)——如何做线上全链路压测

目录 一、背景介绍 二、准备工作 三、拆分详解 3.1 确定需要哪些团队参与 3.2 确定全压技术方案 3.3 确定全压目标和计划 四、总结 一、背景介绍 如今,在微服务架构盛行的互联网时代,微服务架构下模块(本文指可独立部署的服务&#x…

全链路压测应该怎么做?答案都在这里了!

“双11前最后一次全链路压测,所有技术、系统、安全策略与应急预案被一一演练。流量峰值,一秒内有几千万次请求,这意味着一秒会产生数百万次交易。"这是2018年阿里双十一前夕战况。随着互联网的发展与各种新业务的出现,全链路…

全链路压测,你想要的全在这里

步骤一:确定压测目标 压测目标主要包括压测范围、策略、目的,往往与业务、技术目标息息相关。例如: 压测范围:用户注册加登录,为大规模拉新做准备。压测策略:高仿真生产环境压测,提前经历真实…

全链路压测那点事(一)

个人介绍:大家好,我是大猫,2015年加入百度质量部,负责百度前端展现架构测试工具开发。曾负责并开发基于spark的阿拉丁模板召回查询系统与搜索前端阿拉丁模板页面diff工具,均取得良好效果。2018年加入贝壳质量部&#x…

介绍一下全链路压测平台的相关内容

随着互联网技术的不断发展,越来越多的企业开始依赖互联网来实现业务的发展和增长。而对于这些企业而言,如何保证他们的业务在高并发、高负载的情况下依然能够正常运行,是非常重要的一个问题。为了解决这个问题,企业可以使用全链路…

你“被”全链路了么?全链路压测实践之理论

要说当下研发领域最热门的几个词,全链路压测 肯定跑不了。最近的几次大会上,也有不少关于全链路的议题。之前有朋友在面试过程中也有被问到了什么是全链路压测,如何有效的开展全链路压测。今天我们就来聊聊全链路压测,但本文不会涉…

全链路压力测试

压力测试的目标: 探索线上系统流量承载极限,保障线上系统具备抗压能力 复制代码 如何做全链路压力测试: 全链路压力测试:整体步骤 容量洪峰 -》 容量评估 -》 问题发现 -》 容量规划 全链路压力测试:细化过程 整体目…

全链路压测的“谜”

前言: 对于性能测试来说,全链路压测肯定跑不了的。在昨天上午的【GIAC全球互联网架构大会】上,网易云就进行了全链路压测的议题。对于有性能测试的公司来说,面试往往会被问到什么是全链路压测、如何有效的开展全链路压测等等。我今…

软件测试——全链路压测原理

摘要 全链路压测平台主要有两个核心的也是最顶级的要求:全业务,全链路。这导致了,必须线上搞压测,必须用线上的真实数据搞压测。那么线上搞就容易搞出事情,所以技术含量还是要有的,还是很高的。 一、压测…

性能测试之全链路压测实战理论详解

前言 要说当下研发领域最热门的几个词,全链路压测 肯定跑不了。最近的几次大会上,也有不少关于全链路的议题。之前有朋友在面试过程中也有被问到了什么是全链路压测,如何有效的开展全链路压测。今天我们就来聊聊全链路压测,但本文…

全链路压测方案

双十一的技术准备在做两件事情&#xff1a;第一是系统的准备尽可能的接近真实&#xff0c;包括容量确定性和资源的确定性&#xff1b;第二是整个过程中的效率&#xff0c;包括人和单位资源效率。 < 演讲视频 > class"video_iframe" allowfullscreen"&quo…

全链路压测原理篇(方案 概念 架构 实现)

大促之前全链路压测原理篇 大促之前全链路压测原理篇全链路压测的意义链路压测方案刨析线下压测预生产环境压测引流压测全链路压测四种压测方案对比 全链路压测概述什么是全链路压测解决什么问题精确的容量规划进行全链路的性能监控 如何展开全链路压测 业务模块介绍全链路整体…

全链路压测原理剖析(Coding)

引言 … 什么是全链路压测&#xff1f; 相对于传统的单接口压测&#xff0c;全链路压测旨在能完全模拟真实的用户的施压场景在生产环境或类生产环境执行的压测。在服务器、中间件、数据库等所有软硬件配置上&#xff0c;和线上保持一致&#xff1b;在压测场景上&#xff0c;通…

全链路压测实践

一 背景 随着业务的不断增长&#xff0c;系统的稳定性保障尤为重要&#xff0c;传统压测存在诸多不足&#xff0c;以往的压测中各个业务线对单个接口压测&#xff0c;需要单独准备测试机&#xff0c;测试成本高&#xff0c;而且无法直接压测线上接口&#xff0c;也没有历史压测…

测试学习——全链路压测

参考资料&#xff1a;全链路压测平台&#xff08;Quake&#xff09;在美团中的实践 全链路压测简介 - 性能测试 PTS - 阿里云 聊聊全链路压测 - 老_张 - 博客园 基于实际的生产业务场景和系统环境&#xff0c;模拟海量的用户请求和数据&#xff0c;对整个业务链路进行各种场…