性能分析5部曲:瓶颈分析与问题定位,如何快速解决瓶颈?

一、引言

很多做性能测试的同学都问过我这样一个问题:鱼哥(Carl_奕然),你说性能测试的重点是什么?

我的回答很简单:瓶颈分析与问题定位。

在性能项目的整个周期,不管是脚本设计,脚本编写还是脚本执行,都还算简单。

难点在于如何定位瓶颈,分析瓶颈,解决瓶颈。

如果你不会性能分析,脚本设计的再好,脚本编写的再完美,分析不出问题所在,那都是白白浪费时间。

所以,这一讲,我们来学习:如何进行性能分析,学会了性能分析的思路,才能定位问题,分析问题,从而解决问题。

在性能项目中,我总结的性能分析思路,分5个模块,即性能分析5部曲,如下:

1、判断性能瓶颈;

2、线程递增策略;

3、性能衰减过程;

4、拆分响应时间;

5、构建分析决策tree;

接下来,我就对这5部曲进行一一解释。

二、判断性能瓶颈

在整个性能测试阶段,让性能测试工程师最艰难的,就是如何定位性能瓶颈。

如果无法定位到性能瓶颈,那么对开发同学的支持也就有了限制,这无疑即增加了解决问题的时间,又增加了开发工程师的工作量。

这时候,你会说,开发工程师的职责不就是解决性能瓶颈吗,

那要是这样说, 测试工程师的职责,可不仅仅是发现性能瓶颈,还需要定位性能瓶颈,换句话说,也就是协助开发工程师快速定位并解决性能问题。

为什么说在整个性能项目中,最难得就是分析性能瓶颈。

这里,我先上一张图,为了更形象的表现接下来要描述的内容,我把图片做了一点处理:

通过这张图,我们很直观的知道:这是一个阶梯式增加的压测场景。

但是,根据这个图,你能判断出拐点在哪里吗?

如果无法判断哪里是拐点,那我再上一张ResponseTime(后面简称为RT)图:

同样,为了让你更直观的查看RT图,, 我同样也对RT图做了优化处理。

结合RT图与TSP图,我们能不能判断拐点在哪里呢?

如果你觉得在3.3s的位置是拐点。我不能否认你说的完全错误,但是,我也不会认同你的观点, 为什么呢?

因为,根据多年的经验,判断的标准是:随着TPS的不断增加,找到那个清晰可见的弧度。

这一点很重要,需要你记住。

我举个例子:如果按照你刚刚的说法,只根据一个拐点来进行判断,想象一下,

假如网络出现突然的抖动,按照你刚刚的判断依据(只根据一个拐点),是不是就不准确了。。

所以,一定是找到那个 清晰可见的 弧度。

我们在回来说上面的TPS图与RT图,根据这两个图,你能得出哪些结论呢?

是不是可以得出这个系统有瓶颈,系统的瓶颈与压力有关系,并且随着压力的增加,涨幅在逐渐减少。

到这里, 需要请你在思考一个问题:瓶颈点是否跟压力的大小有关?

答案:肯定不是跟压力大小有关。

既然不是跟压力大小有关,那么,根据什么有关呢?

其实结合上面的图, 我们可以知道:

①引起系统瓶颈的问题是有规律的;

②TPS是周期性的降低,并且最大的TPS也都差不多是一致的;

所以,即使压力降低,最多只是降低最大的TPS水位,这种情况只是让问题出现的更晚一点,但不会不出现的。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关推荐
倔强的石头_1 天前
《Kingbase护城河》——数据库存储空间全景探测与精细化瘦身实战
数据库
冬奇Lab2 天前
每日一个开源项目(第134篇):Zvec - 阿里开源的嵌入式向量数据库,向量搜索界的 SQLite
数据库·人工智能·llm
ClouGence2 天前
Oracle CDC 架构优化:从主库直连到 DataGuard 备库同步
数据库·后端·oracle
无响应de神2 天前
三、用户与权限管理
数据库·mysql
程序员龙叔3 天前
编写高质量 Skill 系列 -- 如何设计需求分析与用例生成的 SKILL
自动化测试·软件测试·python·软件测试工程师·接口测试·性能测试·skill·ai测试
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
小宇宙Zz3 天前
Maven依赖冲突
java·服务器·maven
Inhand陈工3 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信