问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

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

创作时间:
作者:
@小白创作中心

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

引用
CSDN
1.
https://m.blog.csdn.net/weixin_71807218/article/details/146230227

在软件性能测试领域,如何快速定位并解决性能瓶颈是每个测试工程师都必须面对的挑战。本文将分享一套经过实践验证的"性能分析5部曲",帮助读者系统地掌握性能分析的关键步骤,从而更有效地支持开发团队解决问题。

一、引言

很多做性能测试的同学都问过这样一个问题:性能测试的重点是什么?答案很简单:瓶颈分析与问题定位。在性能项目的整个周期中,从脚本设计到脚本执行,这些步骤相对简单。难点在于如何定位瓶颈,分析瓶颈,解决瓶颈。如果你不会性能分析,即使脚本设计得再好,编写得再完美,也难以发现真正的问题所在。

在性能项目中,我总结了一套性能分析思路,分为5个模块,即"性能分析5部曲":

  1. 判断性能瓶颈
  2. 线程递增策略
  3. 性能衰减过程
  4. 拆分响应时间
  5. 构建分析决策树

接下来,我将对这5个模块进行详细解释。

二、判断性能瓶颈

在整个性能测试阶段,让性能测试工程师最艰难的,就是如何定位性能瓶颈。如果无法定位到性能瓶颈,那么对开发同学的支持也就有了限制,这无疑即增加了解决问题的时间,又增加了开发工程师的工作量。

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

为什么说在整个性能项目中,最难得就是分析性能瓶颈。这里,我先上一张图,为了更形象的表现接下来要描述的内容,我把图片做了一点处理:

通过这张图,我们很直观的知道:这是一个阶梯式增加的压测场景。但是,根据这个图,你能判断出拐点在哪里吗?

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

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

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

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

因为,根据多年的经验,判断的标准是:随着TPS的不断增加,找到那个清晰可见的弧度。这一点很重要,需要你记住。

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

假如网络出现突然的抖动,按照你刚刚的判断依据(只根据一个拐点),是不是就不准确了。。所以,一定是找到那个 清晰可见的 弧度。

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

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

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

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

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

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

①引起系统瓶颈的问题是有规律的;
②TPS是周期性的降低,并且最大的TPS也都差不多是一致的;

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

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号