测试学习——全链路压测

article/2025/11/5 21:24:12

参考资料:全链路压测平台(Quake)在美团中的实践

全链路压测简介 - 性能测试 PTS - 阿里云

聊聊全链路压测 - 老_张 - 博客园

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

全链路压测的原因

传统的压测只会涉及到核心服务,无法覆盖到所有的环节,而传统的压测通常会忽略掉一些基础服务如Nginx、Redis 缓存、数据库、磁盘、网络等,所以这些基础服务问题在单服务压测中往往不能被暴露出来。

全链路压测和传统压测的区别

压测类型传统压测全链路压测
压测方式Jmeter、Locust、Loadrunner

压测集群、流量引擎、录制回放

开源:Takin

阿里:Amazon,PTS

美团:Quake

京东:ForceBOT

高德:TestPG

字节:Rhino

承接方式需求响应式,被动发现系统所有链路存在的瓶颈点,主动
压测环境测试环境/性能环境生产环境
环境特点环境不稳定/配置低/压测结果参考性不高环境稳定/完全真实环境/压测结果真实可靠
压测场景单机单接口、单机单链路、单机混合链路包含覆盖范围内的所有核心链路及场景
压测过程可观测性较低,延时较高实时可视化观测
测试结果数据维度小,无法提供太多数据便于分析提供多维度细粒度的数据,便于快速定位问题优化
投入成本需要搭建单独的压测环境完全线上生产环境进行,无须单独搭建环

全链路压测的过程

一、确定压测目标

压测目标主要包括压测范围、策略、目的,往往与业务、技术目标息息相关。例如:

  • 压测范围:用户注册加登录,为大规模拉新做准备。
  • 压测策略:高仿真生产环境压测,提前经历真实的业务高峰。
  • 压测目的:探测业务吞吐极限,验证架构能力、探测性能瓶颈。

二、梳理系统架构

梳理清楚端到端的请求链路、技术架构、分层结构、模块划分,以及RPC、消息、缓存、数据库等中间件的使用情况,分析潜在的瓶颈点,并针对性的增加监控指标、制定应急预案。

组件分类潜在的瓶颈、问题
SLB负载均衡
  • 容量不足
  • 建连失败
ApiGatewayAPI网关
  • 容量不足
  • 线程等待
  • 触发限流
UserService微服务
  • 容量不足
  • 线程池资源耗尽
  • 日志资源耗尽
  • 触发限流
  • GC
SecurityService微服务
  • 容量不足
  • 线程池资源耗尽
  • 日志资源耗尽
  • 触发限流
  • 消费延迟
  • GC
RedisKV缓存
  • 容量不足
  • 触发限流
  • 缓存击穿
  • 缓存热点
  • 连接池耗尽
  • 大对象
MySQL数据库
  • 容量不足
  • 触发限流
  • 连接池耗尽
  • 慢SQL
Kafka消息队列
  • 容量不足
  • 消息堆积
  • 磁盘写达到100%
SmsService第三方依赖第三方可能会拒绝参与压测

三、梳理业务模型           

全链路压测针对的是现代越来越复杂的业务场景和全链路的系统依赖。所以首先应该将核心业务非核心业务进行拆分,确认流量高峰针对的是哪些业务场景和模块。全链路压测的链路代表要压测的业务范围,同一条链路需要构造海量的参数集合代表不同用户的不同行为,系统的基础数据、系统预热情况等代表系统的状态。链路范围、链路的访问量级、链路的参数集合、基础数据、预热情况一起构成了压测的业务模型。

四、准备压测脚本、改造升级环境

根据业务场景编写压测脚本并对生产环境进行隔离。

生产环境压测的三大前提:

  • 压测标记不丢失

    压测流量在任何环节能够被正确的识别出来。

  • 压测流程不中断

    压测流量能够正常的调用下去,整个流程不被阻断,返回符合预期的业务结果。

  • 压测数据不污染

    压测数据不对线上正常的业务造成数据污染。全链路场景往往包含多个读写场景,为了隔离压测数据,存储中间件识别到压测标之后,将数据写入影子库表,与真实的数据区分开。

五、正常流量联调

通常通过执行功能回归用例完成联调,是需要将正常回归流量打上流量标,这样在查找调用链路时可以精准定位。

  • 验证探针对正常业务逻辑无影响,用例的测试结果均符合预期
  • 验证探针对依赖组件的适配情况,无遗漏的RPC调用、采集的数据准确无误;调用链完整性是全链路压测数据安全的核心。
  • 将探针采集的调用链数据进行聚合(建议500+以上),抹平不同参数、不同逻辑分支带来的调用链差异性。使用聚合后的依赖拓扑图辅助梳理组件依赖可以极大程度的避免组件遗漏。
  • 根据正常流量联调的结果,需要梳理出影子库表的范围、第三方服务的依赖情况。

六、准备压测数据

  1. 确认影子库表范围。

  2. 确认偏移字段、脱敏字段。

  3. 新建影子库表。

  4. 执行数据迁移。

  5. 准备接口参数数据。

七、联调压测流量

与正常流量联调的方式基本一致,联调过程中需要将压测流量打上流量标,在查找调用链时可以精准定位。

八、单链路小流量试压,单链路压测

不同的业务、压测目标往往对应不同的压测节奏和方法,不可一概而论。除了注意以下要点之外,还需根据业务、架构、人员等自身情况,制定不同的压测计划,在尽量避免线上故障的前提下,发现更多的线上问题。

  • 制定明确的压测计划、压测通过标准,相关人员必须现场支持,分工明确,统一指挥。
  • 线上压测应在业务低峰时段进行,并制定应急预案。
  • 应当具备监控大盘,密切关注相关监控指标。
  • 遵循循序渐进的原则,单链路压测>小流量验收>全链路验收

九、全链路小流量试压,全链路压测并验收

  1. 阶梯加压与容量规划。

    定位性能瓶颈;拿到各应用的性能基线数据与容量,获取限流阈值。

  2. 瞬时加压。

    验证系统预热是否合理,比如数据库连接、RPC连接、业务缓存、JIT预编译等。

  3. 稳定性测试。

    验证系统资源使用是否合理,是否存在内存泄漏等情况。

  4. 故障演练。

    通过人工注入故障,暴露架构的稳定性问题,提升系统的健壮性。

  5. 验证限流、降级、预案的有效性,产出最终的交付物。

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

相关文章

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

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

全链路压测

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

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

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

IT资质认证证书如何查询?这篇文章教你查询方式

目前IT行业企业常见的体系和资质认证已经超过了30种,如此众多的体系或资质认证品类,查询渠道也不尽相同,今天小编简要介绍下几种常见证书查询方式,方便大家需要时使用。 ITSS运维维护标准 证书示例 ITSS信息技术服务标准是我国自…

Rancher证书更新

一、环境 主机名IP地址操作系统rancher版本K8s-Master192.168.10.236Centos 72.5.9 二、更新证书 1、查看当前证书到期时间 2、进行证书轮换 [rootK8s-Master ~]# docker ps |grep rancher/rancher d581da2b7c4e rancher/rancher:v2.5.9 &q…

计算机类证书之微软厂商认证分享

MCP、MCT、MVP 最近想考一些计算机证书,网上简单看了下。大致分为国家代表队的计算机技术与软件专业资格考试证书、国内大厂代表队的华为认证、外企代表队的微软认证。在这里给大家分享下,留给有需要的同学。 计算机技术与软件专业资格考试证书 是由国…

证书双向认证

假设你通过openssl生成了如下文件: 双向认证 在开始之前,我们先讲一下什么是证书双向认证,来看一张图: 所谓证书双向认证是指: 服务端使用ca.crt校验客户端的client.crt和client.key客户端使用ca.crt校验服务端的…

夜神模拟器抓包微信小程序(进入浏览器,弹出安全警告(安全证书有问题解决方法)

1.声明:本文仅限学习研究讨论,切忌做非法乱纪之事! 即使按照其它教程的安装证书,也只是把证书安装到了用户下面,然而安卓高版本(7.0)之后呢,app可以只信任指定证书和系统内置的证书…

https配置中间证书

公司最近做了一个在线课堂直播课的小程序,调用的接口使用的是phalapi框架,接口的话使用https协议访问比较安全,nginx部署https已经配置完成,上线时发现ios手机可以正常访问,但是安卓手机访问时会报如下错误信息&#x…

计算机专业哪些证书可以抵个税,2020年度个人所得税汇算清缴进行时 职业资格证书有哪些能抵扣个税?...

好消息!2020年度个人所得税汇算清缴进行时,职业资格证书个税抵扣,千万别错过!那么,职业资格证书有哪些可以抵税呢?个税精灵跟大家聊一聊。 2021年3月1日起,2020年度综合所得个人所得税汇算清缴开…

计算机软件证书

文章目录 前言一、考证目的二、证书介绍2.1 Oracle认证2.2 全国计算机等级考试【NCRE】2.3 全国信息技术高级人才水平考试【NIEH】(已停考)2.4 全国计算机应用考试【NIT】2.5 全国计算机高新技术考试合格证书【OSTA】(已停考)2.6 …

在IT行业里,网工都有啥高含金量的证书可考?

拿下思科/华为认证之后,身为网工的你可以: 跨越90%企业的招聘硬门槛 增加70%就业机会 拿下BAT全国TOP100大厂敲门砖 体系化得到网络技术硬实力 IE大佬年薪可达30w 01 思科认证 思科公司是全球领先的网络解决方案供应商。Cisco的名字取自San Francis…

【原创】mitmdump 安装证书至手机系统证书

本文所有教程及源码、软件仅为技术研究。不涉及计算机信息系统功能的删除、修改、增加、干扰,更不会影响计算机信息系统的正常运行。不得将代码用于非法用途,如侵立删! mitmdump 安装证书至手机系统证书 环境 win10雷电5Android7.1 雷电模拟器…

国内常见的IT认证都有哪些?这几个入大厂必备

考证一直都是为职业生涯获取更好机会和助力发展的重要途径,对于IT人来说更是如此。 认可度和含金量越高的IT认证,越能够证明一个人的专业实力和发展潜力,在求职和晋升过程中,就会获得更大的成功几率。 ​图源:某招聘网…

IT人需要了解的认证大全(持续补充)

“考证”在各行各业中一直都是热度不减的话题,IT领域也不例外,包括帆软也有相关的职业资格认证。 对于在校学生来说,并没有太多实践经验,证书在一定程度上就是找工作时的“敲门砖”,多张证书多条路;对于职场…

让我来告诉你:大学计算机专业的学生应该去考什么证书.

文章目录 大学计算机专业的学生应该考什么证?一、全国计算机等级考试(NCRE)二、计算机软件水平考试(软考)1.初级证书—程序员2.中级证书—软件设计师3.高级证书—系统分析师 三、企业认证证书1.思科证书2、华为证书3、ORALCE证书3.1. OCA英文全称Oracle Certified Associate&a…

文档数据库(document database)和键值数据库(key-value database)的区别(NoSQL)

文档数据库(document database)和键值数据库(key-value database)的区别 相同点: 都是key-value结构 不同点: 在键值数据库中,我们只能通过key查找到整个value,数据库并不知道value里面存的内容到底是什么,而是通过应…

关系型数据库和文档型数据库有什么区别?

关系型数据库和文档型数据库有什么区别? 关系数据库(Relational Database)是建立在关系模型基础上的数据库,借助于几何代数等数学概念和方法来处理数据库中的数据。所谓关系模型是一对一、一对多或者多对多等关系,常见…

关系型数据和文档型数据库有什么区别?

目录 关系数据库 ACID特性 关系数据库的三范式 非关系型数据库 VS 文档型数据库 1. 文档型数据库 2. 键值型数据库 3. 全文搜索型数据库 MongoDB 事务 关系数据库 关系数据库(Relational Database)是建立在关系模型基础上的数据库,借…

面向文档的数据库 CouchDB

面向文档的数据库 CouchDB CouchDB 介绍 CouchDB 是一个文档型数据库服务器。与现在流行的关系数据库服务器不同,CouchDB 是围绕一系列语义上自包含的文档而组织的。 CouchDB 中的文档是没有模式的(schema free),也就是说并不要…