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

article/2025/11/5 19:11:49

file

全链路压测?

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

针对业务场景越发复杂化、海量数据冲击,发现并解决整个业务系统的可用性、扩展性以及容错性的过程。

核心流程
全链路压测实施的核心流程如下:
file

1 全链路压测的意义

file

​ 上图是 2012 年淘宝核心业务应用关系的拓扑图,还不包含了其他的非核心业务应用,所谓的核心业务就是和交易相关的,和钱相关的业务。这张图大家可能看不清楚,看不清楚才是正常的,因为当时的阿里应用数量之多、应用间关系之混乱靠人工确实已经无法理清楚了。

​ 在真实的业务场景种,每个系统的压力都比较大,而系统之间是有相互依赖关系的,单机压测没有考虑到依赖环节压力都比较大的情况,会引入一个不确定的误差。这就好比,我们要生产一个仪表,每一个零件都经过了严密的测试,最终把零件组装成一个仪表,仪表的工作状态会是什么样的并不清楚。

技术角度:降低成本、提高服务可用性、技术练兵&团队协作&快速响应;
业务角度:提升用户体验、技术更好的服务业务、创造更多业务价值。

2 链路压测方案刨析

2.1 线下压测

​ 顾名思义就是在测试环境进行压测,且是针对一些重点项目这种测试手段,因为测试环境硬件资源以及压测数据与线上差别太大并且服务间依赖关系错综复杂,测试环境很难模拟且不够稳定,压测出来的数据指标参考价值不大,难以用测试环境得出的结果推导生产真实容量。

2.2 预生产环境压测

file

​ 这个一般是将生成环境的硬件以及软件同步复制到与生产环境一份,然后对服务内部的外部调用接口进行拦截,然后进行压测这样可以评估出来生产环境的真实容量以及达到压测的目的,但是成本非常高,需要将生产环境的硬件完全的复制一份,并未维护成本非常高,部署的时候需要同步的在预生产环境进行部署,以及压测代码的更改。

2.3 引流压测

​ 随着业务量的不断增长,考虑到线下测试结果的准确性,开始尝试生产压测,这种压测手段,我们称之为引流压测。事实上没有真正的模拟放大压力进行测试,而是一种通过缩小在线服务集群数的方式来放大单机处理量。比如一个业务系统的集群有100个节点,将其中90个节点模拟下线或转发流量到剩余的10个节点上实施压测。

file

​ 引流压测的弊端在于,DB承受压力不变,上下游系统的压力不变。压测结果仅能代表单个应用的性能,但往往无法识别链路和架构级的隐患,而且在引流过程中倘若出现异常或突如其来的业务高峰,很容易造成生产故障。

2.4 全链路压测

​ 随着微服务架构的流行,服务按照不同的维度进行拆分,一次请求往往需要涉及到多个服务。互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发、可能使用不同的编程语言来实现、有可能布在了几千台服务器,横跨多个不同的数据中心。因此,就需要一些可以帮助理解系统行为、用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题,但是他的缺点也很明显就是需要的技术难度很高,需要克服流量染色数据隔离日志隔离风险熔断等技术难题,因位在生产环境压测,所以控制不好风险也是非常高的。

​ 所以,在复杂的微服务架构系统中,几乎每一个前端请求都会形成一个复杂的分布式服务调用链路。一个请求完整调用链可能如下图所示:

file

2.5 四种压测方案对比

压测效果技术难度机器成本维护成本风险
线下压测
预生产压测
引流压测
全链路压测

3. 全链路压测概述

3.1 什么是全链路压测

​ 基于实际的生产业务场景、生产环境,模拟海量的用户请求和数据对整个业务链(通常是核心业务链)进行压力测试,并持续调优的过程。

3.2 解决什么问题

​ 解决在业务场景越发复杂化、海量数据冲击下系统整个业务链的可用性、服务能力的瓶颈,以及容量规划等问题。

3.2.3 精确的容量规划
3.2.3.1 为什么需要容量规划

什么时候增减机器、保障系统稳定性、节约成本

​ 容量规划的目的在于让每一个业务系统能够清晰地知道:什么时候该加机器、什么时候应该减机器?双11等大促场景需要准备多少机器,既能保障系统稳定性、又能节约成本

3.2.3.2 容量规划四步走
  1. 业务流量预估阶段:通过历史数据分析未来某一个时间点业务的访问量会有多大
  2. 系统容量评估阶段:初步计算每一个系统需要分配多少机器
  3. 容量的精调阶段:通过全链路压测来模拟大促时刻的用户行为,在验证站点能力的同时对整个站点的容量水位进行精细调整
  4. 流量控制阶段:对系统配置限流阈值等系统保护措施,防止实际的业务流量超过预估业务流量的情况下,系统无法提供正常服务流量控制阶段:对系统配置限流阈值等系统保护措施,防止实际的业务流量超过预估业务流量的情况下,系统无法提供正常服务
3.3 进行全链路的性能监控

全链路性能监控 从整体维度到局部维度展示各项指标,将跨应用的所有调用链性能信息集中展现,可方便度量整体和局部性能,并且方便找到故障产生的源头,生产上可极大缩短故障排除时间。

  • 保证系统稳定性:可能提前预估系统存在的各种问题,提前模拟高并发场景,有备无患。
  • 请求链路追踪,故障快速定位:可以通过调用链结合业务日志快速定位错误信息。
  • 精准的容量评估:能够定位到最需要扩容的服务,帮助公司用最低的成本满足业务的性能要求
  • 真实的性能验证:能够在生成环境以最真实的环境来验证系统的真实性能。
  • 数据分析,优化链路:可以得到用户的行为路径,汇总分析应用在很多业务场景。

file

3.4 如何展开全链路压测

3.4.1 业务模型梳理
  • 首先应该将核心业务和非核心业务进行拆分,确认流量高峰针对的是哪些业务场景和模块,针对性的进行扩容准备。
  • 梳理出对外的接口:使用MOCK(模拟)方式做挡板。
  • 千万不要污染正常数据:认真梳理数据处理的每一个环节,确保 mock 数据的处理结果不会写入到正常库里面
3.4.2 数据模型构建
  • 数据的真实性和可用性:可以从生产环境完全移植一份当量的数据包,作为压测的基础数据,然后基于基础数据,通过分析历史数据增长趋势,预估当前可能的数据量
  • 数据隔离:千万千万不要污染正常数据:认真梳理数据处理的每一个环节,可以考虑通过压测数据隔离处理,落入影子库,mock 对象等手段,来防止数据污染
3.4.3 压测工具选型

​ 使用分布式压测的手段来进行用户请求模拟,目前有很多的开源工具可以提供分布式压测的方式,比如JMeter、nGrinder、Locust等。

务模块介绍

现在我们对整体的业务进行介绍以及演示
file

本文由传智教育博学谷教研团队发布。

如果本文对您有帮助,欢迎关注点赞;如果您有任何建议也可留言评论私信,您的支持是我坚持创作的动力。

转载请注明出处!


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

相关文章

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

目录:导读 前言一、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;对整个业务链路进行各种场…

全链路压测及阿里全链路压测详解

一、前言 很多公司有线下性能测试&#xff0c;那为什么还要做全链路压测呢&#xff0c;全链路能解决一般性能测试的什么问题呢&#xff1f;我认为在每个环境做性能测试是相互补充的过程。在线下的性能测试&#xff0c;由于机器监控&#xff0c;部署迅速以及相应的权限充足&…

全链路压测

核心流程 全链路压测实施的核心流程如下&#xff1a; 骤一&#xff1a;确定压测目标 压测目标主要包括压测范围、策略、目的&#xff0c;往往与业务、技术目标息息相关。例如&#xff1a; 压测范围&#xff1a;用户注册加登录&#xff0c;为大规模拉新做准备。压测策略&#…

说一说IT管理的证书:PMP、高项、IPMP

说一说IT管理的证书&#xff1a;PMP、高项、IPMP 一、PMP二、 高项三、IPMP四、PMP、IPMP、高项对比 作为新一代的农民工&#xff0c;提升也成为内卷大环境下必不可少的一个环节。这里来说一说IT项目管理类的证书认证。 一、PMP pmp是由美国PMI推出的&#xff0c;将项目管理划…