分布式系统如何做好全链路压测?

article/2025/11/5 19:08:02

随着互联网的发展,各行业均在大力开展数字化转型,这意味着传统线下服务均在整体线上化,各行业信息系统都在像互联网行业一样面对流量洪峰的压力。所以各行业IT系统均开始利用分布式架构增强系统应对流量洪峰的压力,但同时也带来复杂的业务流程逻辑、多种异构的服务器、纷繁复杂的开源技术中间件、跨多个单位或部门的研发运维团队,导致各类信息系统故障频发。

图 1:“十四五”数字经济发展主要指标

如何有效保障大型分布式系统的稳定性?

首先要做的,就是要对系统最大能力做到“心中有数”,即开展全链路压测,即覆盖系统全技术组件、全链路上的各部门单位的压测。

什么是全链路压测?

全链路压测是性能压测的一个升级版本。性能压测大家已经比较熟悉,是系统稳定性保障的一种手段,它的目标是测试在一定的负载下,系统长时间运行的稳定性。从具体的作用上讲,性能压测可以用于新系统上线支持、技术升级验证、业务峰值稳定性保障、站点容量规划以及性能瓶颈探测。性能压测伴随着系统开发、重构、上线到优化的生命周期。

性能测试经历了从单接口、单系统到生产全链路压测演变的3个阶段:

图 2:全链路压测的演进历程

阶段一:线下环境单接口、单系统压测阶段,大多采用简单的工具进行单接口或者单系统压测,能进行一些简单的性能问题分析,但很多时候都没有专门的测试团队,需要开发进行自主压测。

阶段二:线下环境多接口、多系统性能压测阶段,通过组建专门的性能测试团队来搭建线下性能测试平台,具备多接口、多系统的压测能力及性能问题定位能力。

阶段三:核心业务生产环境全链路压测阶段,通过在生产环境对核心业务进行全链路压测,能够模拟真实的业务场景流量,验证高并发下系统的性能表现,探知系统性能风险瓶颈,帮助系统进行性能优化、容量评估,保障核心业务系统稳定无故障。再进阶一些的会进行主动防御演练,比如降级、限流、故障演练等。

所有系统都要开展全链路压测方式

性能测试的发展最终衍生出3种市面上常见性能压测方式:传统单接口单系统压测、测试环境多接口多系统压测和生产环境全链路压测。接下来为了方便理解,笔者会以相对简单粗暴的方式来告诉大家如何选择合适的方式。以“流量高峰期总体并发访问量”作为划分依据,仅供参考:

流量高峰期总体并发访问量

适用性能压测方式

≤100人次/秒

传统单接口单系统压测

100人次/秒-1000人次/秒

线下环境多接口多系统压测

≥1000人次/秒

生产环境全链路压测

流量高峰期总体并发访问量不超过100人次/秒,系统依赖的复杂度也不高,这时性能和稳定性并不是主要矛盾, 所以在线下环境搭建一套同样的配置的软硬件来进行单接口、单系统进行压测,非常快速高效就能拿到可靠的性能指标。 在信息化时代,像ERP、CRM之类系统的使用用户并不多,即使生产环境不可用一段时间,也不会造成大的影响。

当流量高峰期总体并发访问量在500人次/秒左右,生产环境不可用一段时间,会累积造成一定的负面影响,通过在线下环境搭建一套类似的测试环境,来进行系统多接口多系统的压测,也能有效评估性能指标,只是参考价值有限。系统在生产环境运行时可能还是会出现一些故障问题,这时候适当加一些应用可用性的监控,更能缓解系统不可用导致的问题。

流量高峰期总体并发访问量超过1000人次/秒,就说明这是一个需要应对高并发场景的系统了。以2000人次/秒为例,若核心系统功能不可用超过10秒,预计将影响超过20000名的用户,这会对企业的正常运转造成非常不良的影响,甚至是直接导致经济损失。此时对系统稳定性的要求也就更高了,只有在生产环境还原真实业务场景,提前发现解决问题才能最大程度降低性能问题带来的糟糕影响。

当然应用这种方式需要面对的问题也有很多:

怎么保障生产数据不受污染?

怎么保障压测不会压挂系统?

怎么保障压测的同时业务不受影响?

......

毕竟在生产环境进行压测,数据安全、业务安全都是需要考虑的。

全链路压测怎么做?

篇幅所限,本文直接以图的形式,概括通用的全链路压测的基本流程,未来将会逐一详细描述。

同时,需注意生产环境进行全链路压测有三个核心原则是不变的,那就是一致性(Consistency)、隔离性(Isolation)和稳定性(Reliability)。

一致性是指压测环境与生产环境的高度一致性,而不是传统意义上的性能测试环境、预发环境等。在当前分布式架构下,影响性能表现的因素非常多,比如网络结构、网络带宽、系统参数、软件配置、链路拓扑、数据维度等等,所以压测环境与生产环境必须高度一致这个条件是全链路压测最重要的特征。

隔离性,主要是指压测数据(包括数据库、缓存、搜索、消息、日志等)的隔离,这部分是全链路压测的技术挑战难点之一。如果不具备数据隔离的特性,影响的不止是压测后续的清理善后工作量巨大的问题,更会严重影响其他部分工作:比如BI的数据分析异常导致管理层无法有效决策,压测和生产数据融合导致无法清理出脏数据。

稳定性,主要指压测实施过程中的要保障业务的可用性,很好理解就是不能因为接入压测导致生产的事故。

总结

全链路压测是性能测试的高阶版本,也是系统分布式化后系统建设管理单位必须要做的事情。但由于其执行过程复杂、操作门槛高,所以在开展前必须拥有完善理论指导。未来,分布式系统稳定性实验室将持续在这一领域深入研究,产出相关成果。


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

相关文章

滴滴全链路压测解决之道

作者:张晓庆,来自滴滴 滴滴出行创立于 2012 年,是全球领先的一站式多元化出行平台。经历过各种烧钱补贴大战、多次合并,滴滴成为继阿里之后,国内第二个日订单量超过千万的公司。 业务飞速增长,IT 系统面临的…

如何让全链路压测落地?

不知道大家发现没,阿里、京东、字节、美团、饿了么、滴滴、陌陌等大厂的技术文章里,最近频繁提到全链路压测在企业内部的落地。本想抱着拜读一二的心理去看,结果一旦涉及到具体的落地细节,他们却都跟约好了一样三缄其口。 不怪我…

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

压测前言 上篇文章主要介绍了在全链路压测准备阶段,最核心的一点:核心链路相关的知识。 梳理核心链路的一个重要目的是获得流量模型。但在全链路压测中,除了流量模型,业务模型和数据模型一样重要。这篇文章,为大家介…

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

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

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

目录:导读 前言一、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…

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

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