jmeter如何玩之badboy + jmeter并发性能测试  今天下班时公司安排了一个同事来对项目做集群性能测试,怀着对性能测试的好奇心,下班后没有着急离开,而是等待 (8)

通常,平均响应时间越短,系统吞吐量越大;平均响应时间越长,系统吞吐量越小。但是,系统吞吐量越大,未必平均响应时间越短。因为在某些情况(例如,不增加任何硬件配置)吞吐量的增大,有时会把平均响应时间作为牺牲,来换取一段时间处理更多的请求。

举个例子:一个理发店,只有一个理发师、一把理发椅子、一张方便客人等待的长凳。理发师一次只能处理一个客户,其他等待的用户显得很不耐烦,外面打算进来理发的人也放弃了在这家店理发的打算……

有一天,理发师有钱了,他多买了2把理发椅子。这样他可以同时给3个人理发:当其中一个人理到一定阶段需要调整或定型的时候,他就转向另外一个客户为其服务,依次类推。这样,他发现一天内他可以理的人数比以前增多了,但是还会有一些后来的客户抱怨等待时间太长。(吞吐量大了,但平均响应时间却长了)

后来,理发师招了2名学徒帮他一起干活。他发现这样一来每天的理发效率增加了将近2倍,而且客户的等待时间也明显减少。但是成本增多了,理发用具、洗发水、发工资,这让他觉得开个理发店也要精打细算。(平均响应时间短了,吞吐量也大了,但是成本却高了)

示例2: 

我们可以利用“门”的概念来理解这里面的偏差!

  首先,我们假设如下的情况:

  共有5个人;

  有1扇门;

  一个人通过这扇门需要花费1秒的时间;

  此时,这扇门的吞吐量为1人/秒。5个人通过这扇门的平均响应时间为(1+2+3+4+5)/5=3秒。

  如何才能提高人的通过效率呢?即,如何才能提高门的吞吐量呢?

  有两种方法:

  (1)减小通过门的时间;

  (2)增加门的数量

  例如,

  (1)将一个人通过门的时间减小为0.5秒,门的吞吐量变成了2人/秒;

  (2)增加一个门,门的吞吐量也变成了2人/秒

  结果是:

  (1)5个人通过改善通过时间的门的平均响应时间为(0.5+1+1.5+2+2.5)/5=1.5秒;

  (2)5个人通过两扇门的平均响应时间为(1+1+2+2+3)/5=1.8秒

  此时,你可以发现,软件开发员改进软件处理并发交易请求的方法有两个,第一种是提高单个请求的处理速率,第二种是增加处理请求的线程的数量;或者是两种方法的组合。但是,不同方法的使用并不代表吞吐量得到了提高,而同时软件典型交易的平均响应时间也获得了相同值的改善。

  因此,在性能测试以吞吐量为检测指标的时候,不光要评估吞吐量是否符合了性能指标的要求,同时也必须考虑响应时间是否符合性能指标的要求。

  假设,在测试前,规定了吞吐量为大于25笔交易/秒,平均响应时间为小于5秒,在测试后,若实际吞吐量等于27笔交易/秒,不能仅凭这个27笔交易/秒就确定该软件的性能符合要求了,还要看平均响应时间是否符合要求。这时的平均响应时间可能大于5秒。

  而如果测试前,规定了在线人数为10000,平均响应时间为小于5秒,在测试后,仅凭实际平均响应时间等于4秒就可以判断该软件的性能符合要求。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwgxyg.html