性能测试如何对瓶颈进行定位?

  1、首先,需要make sure我们的性能测试的target是合适的。用户如何使用我们的系统,也是用户的使用模型。确定我们的性能测试确实是cover了大多数用户的使用模型。这是性能瓶颈分析的前提,以免浪费时间和精力。

  2、得出一个task性能数据,接下来需要做task分解。一个task在CPU或者多个主机上执行,无非是串行task和并行task。对于串行执行的任务好说,每个sub task的执行时间是多少,多者既瓶颈所在,需要对它优化。并行也好说,总体的性能既是所有并行的sub task中耗时长的那一个,它既是瓶颈,需要对它优化才能提高整体性能。

  如果一个task既串行,有并行,相互交织,相互混杂。那只有像庖丁解牛一样,逐级划分,直到变成并行和串行的sub sub sub task。然后可以得出task的总的耗时和这些sssssub task的执行时间的数学关系。瓶颈定位变成数学公式,看起来简单了是吧。

  3、第2条是针对一个测试性能数据而言的。如果很多的测试用例走了不同的分支,既不同的sub task,使得按照2得到不同的公式,问题变成如下的:

  TC1 Perf Bottleneck = F1(sub1, sub2, sub3,...)

  TC2 Perf Bottleneck = F2(sub1, sub2, sub3,...)

  TC3 Perf Bottleneck = F3(sub1, sub2, sub3,...)

  TC4 Perf Bottleneck = F4(sub1, sub2, sub3,...)

  ...

  也是说终系统的性能在不同的测试用例的情况下,得到的和sub task的关系是不一样的。那么如果我们需要提高整个系统的总体性能,也是找到谁才是需要被优化的sub task,我们还是的回到用户模型。针对用户模型的时间分析,我们可以得出每个test case的用户使用概率百分比。例如:TC1 10%,TC2 40%, TC3 10%, TC4 20%。有了这样的数据,带入F1,F2,F3和F4,大致可以搞清楚哪些sub task是主要的瓶颈。

  4.此外,还需考虑task只能到底耗费的是什么资源,是CPU,是harddisk,是网络带宽。这个取决于你的task划分的粒度以及对每个sub task实现细节的了解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值