新增全链路压测平台探针管理,帮助业务实现10倍性能提升!

全链路压测诞生于阿里巴巴双 11 备战过程,如果说双 11 大促是阿里业务的“期末考试”,全链路压测就是大考前的“模拟考试”,诞生后被誉为双 11 稳定性保障的“核武器”。全链路压测通过在生产环境对业务大流量场景进行高仿真模拟,获取最真实的线上实际承载能力、执行精准的容量规划,确保系统可用性。

分布式架构和业务快速发展给业务系统带来了不确定性。分布式环境的任意节点都可能成为瓶颈/短板/问题,同时系统可用性随着业务的快速增长,面临更严峻的挑战和不确定性。

比如:单链路压测缺少外部干扰和各种资源竞争,单链路压测的结果普遍比较乐观,不能反映真实的系统承载能力。某些问题只有在真正的大流量下才会暴露,比如网络带宽、系统间影响、基础依赖等等。全链路压测不仅仅是做压测,更多的是进行一次真实的大促预演,预案演练、限流验证、破坏性演练等高可用方案的统一验收。

本次全自动测试平台1.0.32更新新增全链路压测平台探针在线管理功能,它是怎么实现的呢?咱们一起往下看~

1.新增全链路压测平台探针在线管理

基本概述:全链路压测是基于实际的生产业务场景和系统环境,模拟海量的用户请求和数据对整个业务链进行压力测试,试图找出系统潜在性能瓶颈并持续调优的过程。

探针是一种在应用程序中嵌入的工具,可用于监视和诊断应用程序的性能和行为。全链路压测平台基于java Agent技术以无代码侵入的方式实现该功能。

2.新增全链路压测平台应用管理

基本概述:全链路压测平台应用管理支持查看被测应用程序与探针,以及对应用程序设置影子库/影子表来实现数据隔离,防止压测数据污染生产数据。

 操作示例:

步骤一:调用被测应用“easydemo-gateway”中的一个接口。

图片

说明:该操作后,探针会录制到被测应用接口请求的所有链路信息。

步骤二:单击全链路压测平台“应用管理”,可查看接入的被测应用程序与探针数。

图片

步骤三:单击应用“详情”。

图片

 

说明:该应用在接口请求链路中负责向数据库写入,所以在该应用新建影子库。

步骤四:单击“新增影子库/表”。

图片

说明:新增影子库/表的作用是让全链路压测的数据写入影子库/表中,防止压测数据污染真实数据。

步骤五:单击“确定”。

图片

 

步骤六:在被测应用的数据库新增一个与正式数据表结构一样的影子表,命名格式为“shadow_正式数据表名”。

图片

 

说明:

1、命名格式固定“shadow_正式环境数据表名”,如正式环境数据库名为user,则影子表的名为shadow_user,这样程序才会将全链接压测的数据写入该表中,不会写入正式的user表。该名称必须一致,不可错误。

2、如果新增的是影子库,此步骤则新增一个与正式数据库一样的影子库,命名格式为“shadow_正式数据库名”。

注意:

如果没有新建影子库/表,则全链路压测的数据会写入正式环境的数据库表中,会污染真实环境的数据。

3.新增全链路压测平台链路管理

基本概述:链路指一个请求在分布式系统中的整个路径,包括所有参与该请求的服务组件。全链路压测平台链路管理支持查看探针录制的应用程序链路,包括链路中各服务组件的拓扑关系与服务组件详情。

 操作示例:

步骤一:调用被测应用“easydemo-gateway”中的一个接口。

图片

步骤二:单击全链路压测平台的“链路管理 > 查询”可查看到步骤一接口的请求链路。

图片

说明:因为接口请求调用了两个服务,所以每个应用各显示了一条链路。

步骤三:单击“POST:/api/register”链路的“详情”。

图片

步骤四:可以查看接口请求所经过各服务组件的完整链路。

图片

步骤五:单击服务组件可以查看服务详情。

图片

 

 

 

 

4.新增全链路压测平台压测任务管理

 

 

基本概述:执行压测任务可对探针录制的应用程序链路发起压力测试得出测试报告,帮助用户测试链路的性能,可靠性与稳定性,识别性能瓶颈,优化系统性能。

 

 操作示例:

 

步骤一:单击“压测任务 > 新增压测任务”。

图片

步骤二:填入压测任务名称,选择资源池,单击“选择链路”。

图片

 

说明:资源池需提前在系统管理配置,具体配置请参考全链路压测平台系统管理章节。

步骤三:选择链路,单击“确定”。

图片

步骤四:按照需要填写施压配置,单击“确定”。

图片

 

说明:

并发模式:单位时间内目标用户数并发访问,用于压测系统TPS。

QPS模式:单位时间内发起固定请求数,用于检测系统业务活动是否能支持该请求数。

目标用户数:每秒或每分钟的用户数。

压测时长:压测时间,建议压测时长不低于2分钟,压测开始后可随时手动停止。

请求步率 :阶梯加压,根据目标用户数和压测时长/请求步率,逐级递增,无须阶梯加压则配1。

继续运行时间 :到达目标数后,继续运行多长时间。

步骤五:单击压测任务的“更多 > 启动压测”。

图片

步骤六:启动成功后会自动跳转报告详情。

图片

步骤七:查看影子库,压测产生的数据自动写入到影子库中,不会干扰正式数据库。

图片

 

 

 

 

5.新增全链路压测平台系统管理

 

 

基本概述:系统配置支持配置资源池,资源池中的资源可作为发起压力测试的机器执行压测任务。

 

 操作示例:

 

步骤一:进入“feisuanyz-pressure-engine”目录,双击“startup.bat”启动全链路压测引擎。

图片

步骤二:控制台日志出现图示信息则启动成功。

图片

步骤三:单击全链路压测平台的“系统配置 > 资源池管理 > 新增资源池”。

图片

步骤四:填入资源池名,单击“提交”。

图片

步骤五:单击“资源管理”。

图片

步骤六:单击“新增资源”。

图片

步骤七:填写资源名与全链路压测引擎服务地址,单击“提交”即可完成资源池的配置。

图片

以上就是本次更新的全部内容,感兴趣的可申请免费试用:http://feisuanyz.mikecrm.com/9dW4GeZ

人大毕业生盗取全校学生信息建颜值打分网站,已被刑拘 基于 NT 架构的全新 QQ Windows 版正式发布 美国将限制中国使用亚马逊、微软等提供训练 AI 模型的云服务 资金严重短缺,又一流行开源项目宣布停止功能开发 2023 年收入最高的技术岗位 LeaferJS 发布:开源、性能强悍的 2D 图形库 Visual Studio Code 1.80 发布,支持终端图片功能 Threads 注册量已破三千万,后端基于 CPython 深度“魔改” deepin 采用 Asahi Linux 适配 Apple M1 7 月数据库排行:Oracle 大涨,再度拉开比分
{{o.name}}
{{m.name}}

猜你喜欢

转载自my.oschina.net/u/4868096/blog/10087099