一、引言

很多做性能测试的同学都问过我这样一个问题:你说性能测试的重点是什么?

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

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

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

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

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

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

1、判断性能瓶颈;

2、线程递增策略;

3、性能衰减过程;

4、拆分响应时间;

5、构建分析决策tree;

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

二、判断性能瓶颈

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

学习安排上

如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

视频文档获取方式:

这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片进群即可自行领取

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

  1. 源码分析教程5部曲之1——漫游C语言-杨振平-专题视频课程

    源码分析教程5部曲之1--漫游C语言-5052人已学习 课程介绍         源码分析教程5部曲之1--漫游C语言 课程收益     源码分析教程5部曲之1--漫游C语言 讲师介绍     杨振平 ...

  2. Linux转发性能评估与优化之——转发瓶颈分析与解决方案

    线速问题 很多人对这个线速概念存在误解.认为所谓线速能力就是路由器/交换机就像一根网线一样.而这,是不可能的.应该考虑到的一个概念就是延迟.数据包进入路由器或者交换机,存在一个核心延迟操作,这就是选路 ...

  3. 性能测试瓶颈分析与系统调优(9)java程序GC机制及性能稳定性调优分析

    8.1 jvm资源监控工具 8.1.1jconsole监控工具 jmap:此工具在jdk安装目录的bin文件夹里面 jmap [option]<pid> 例如:jmap -heap 603 ...

  4. SQL Server数据库性能优化(三)之 硬件瓶颈分析

    参考文献 http://isky000.com/database/mysql-performance-tuning-hardware 由于对DBA 工作了解不多    所以只从网上简单的看了下  硬件 ...

  5. mysql的瓶颈_MySQL瓶颈分析与优化

    作者:蒋乐兴 简介 通过sysbench的oltp_read_write测试来模拟业务压力.以此来给指定的硬件环境配置一份比较合理的MySQL配置文件. 环境介绍 硬件配置 软件环境 优化层级与指导思 ...

  6. MySQL 瓶颈分析及优化

    简介 通过sysbench的oltp_read_write测试来模拟业务压力.以此来给指定的硬件环境配置一份比较合理的MySQL配置文件. 环境介绍 硬件配置 软件环境 优化层级与指导思想 优化层级 ...

  7. linux性能测试 瓶颈,性能测试——瓶颈分析方法

    1.内存分析方法 内存分析用于判断系统有无内存瓶颈,是否需要通过增加内存等手段提高系统性能表现. 内存分析需要使用的计数器:Memory类别和Physical Disk类别的计数器.内存分析的主要方法 ...

  8. Hadoop namenode启动瓶颈分析

    转载:http://blog.csdn.net/AE86_FC/archive/2010/08/26/5842020.aspx NameNode启动过程详细剖析 NameNode中几个关键的数据结构 ...

  9. 存储网络系统的瓶颈分析以及瓶颈的解决之道

    存储网络系统由存储设备.网络设备和主机三个部分组成.存储设备是指该系统中采用的NAS.ISCSI.FC-SAN等磁盘阵列设备,网络设备是指FC交换机或以太网交换机,主机是指安装了以太网卡.FC HBA ...

最新文章

  1. leetcode--最长公共前缀--python
  2. windows系统如何添加ssh key到github
  3. ehcache缓存原理_贼厉害,手撸的 SpringBoot缓存系统,性能杠杠的!
  4. Super SloMo神经网络生成极慢视频(PyTorch实现)
  5. VTK:PolyData之IsoLines
  6. .NET Core程序瘦身器发布,压缩程序尺寸到1/3
  7. python3.6安装【scrapy】-最保守方法
  8. mmc检测到此管理单元发生一个错误_理解这八大优势,才算精通单元测试
  9. oracle jinitiator版本太旧,Oracle Jinitiator 版本太旧或过低怎么办
  10. day10-包的定义和内部类
  11. JMeter使用CSV Data参数化,中文参数传递过程出现乱码问题解决
  12. 百度直达号选错了对手 阿里腾讯还太嫩 干掉美团更直接
  13. soundpool android,Android中用SoundPool播放音频
  14. python哈姆雷特词频统计_python day 17 文本词频统计
  15. Office2016下Excel饼图和Visio饼图绘制的几个小技巧(饼图分离、颜色逐块编辑、扇形区起始角度指定等)
  16. 火狐主页被360导航篡改(360安全卫士中的主页防护导致的)
  17. eclipse上配置JavaFX完整教程
  18. 【一致性仿真】Consensus Control of Leader-Following Multi-Agent Systems in Directed Topology With ...
  19. linux下dd工具,dd 工具使用
  20. 我的AI转型之路与AI之我见(非985211的奋斗路程与视角)

热门文章

  1. Java控制台打印样式diy
  2. elementui form表单校验不通过问题
  3. 【四足机器人】SOLO技术详解--(1)介绍(2)平台和机器人概述【翻译】
  4. PA10题解报告——玩具(Toy)
  5. 免费获取股票历史交易数据方法与代码获取股票实时数据方法集合
  6. UTF8、unicode、GB2312、ASCII区别
  7. ps怎么保存html,ps怎么保存为HTML格式
  8. Windows内核漏洞学习笔记
  9. 从SIP抓包中查看DTMF频率
  10. 2015年哈工大数理逻辑A期末考试参考答案(1)