天天看点

性能下降曲线

  性能下降曲线:

  性能下降曲线实际上描述的是性能随用户数增长而出现下降趋势的曲线。而这里所说的“性能”一般是指响应时间,但也可以指吞吐量等其他数据。图2-1展示了两条相对基础的响应时间性能下降曲线,具体描绘了用户的访问时间与系统用户负载之间的对比情况。

  图2-1中的纵轴描述的是几秒钟内端到端的响应时间,横轴则表示访问系统的当前用户总数。除此之外,图中还包含了数据表。随着更多的用户接人系统,图中用户访问的时间就象预料的情况那样增加或者减少。图中展示的数据表所生成的是最普遍的响应时间性能曲线形状,95%以上的曲线图都会像该图一样。如果出现较大的偏差,主要原因可以从以下几点考虑:

  ①用户群体模型不准确;②编写的脚本不具有用户群体模型代表性;③测试的系统无法处理多用户;④测试没有真正对系统产生压力。

  典型的响应时间性能下降曲线可以划分为以下几个部分:单用户区域、性能平坦区、压力区域、性能拐点。

  (1)单用户区域这个时段是系统对单用户的响应时间。从图中可以看出,单用户的性能实际上比后面几个级别的多用户性能更慢,这也是正常的。因为由负载生成工具生成的单用户响应通常都会稍慢于某些页面的最佳性能,这与负载生成工具的工作方式(比如线程)、休眠中的硬盘和高速缓存硬件因素等有关。可以把仅是单用户接人页面的这种情况比喻为在冰天雪地中驾驶汽车,如果汽车没有在上路前进行暖车,那么车子的性能可能就会有些迟缓.所以一般情况下不应使用单用户负载作为后续负载测试的参照基准。

  (2)性能平坦区在模仿10-100个用户的区域范围内,可以看到系统获得了更好的性能并在一段时间内保持不变。在测试模型正确的前提下,系统能够在这个区域达到期望的最佳性能而不需要对其进行更多的性能调优。任何位于性能平坦区的测试结果都可以作为后续负载测试的参照基准或基线。有观点指出,应该以性能拐点之前最大用户负载的15%为基准。

  (3)压力区域从图中可以明显看到,用户负载在100-175的区域,随着负载的增加,响应时间开始延长。从技术上说,曲线下降的地方系统正处于压力之下,但基本上还是能够处理负载的。压力区域在响应时间开始缓慢增长的时候开始,并在性能拐点结束。这里就是所说的系统性能“轻微下降”的地方,也就意味着随着在此区域的负载增加,响应时间也会变长,但增长率不是很高。当应用软件进行了全面调整之后。即使在压力区域加上最大的建议用户负载,系统仍然能够在高于此负载的情况下相对较好地运行一段时间。

  (4)性能拐点超过175个用户负载之后,图中曲线的响应时间开始快速增长,系统已不能再很好地处理负载了,接着很可能出现系统运行不正常甚至不稳定的情况。响应时间的这种变化经常会很快地发生,并在倾斜度或趋势上造成曲线急剧的变化。此处称之为性能拐点。

  性能拐点处就是系统所能承受的极大负载。在性能测试中此处的负载已成为系统的关键瓶颈.因此值得去研究其中影响因素的细节,还要尽可能地对系统进行调优。

  对性能测试来说,找到这些区域和拐点.也就可以找到性能瓶颈产生的地方。因此,对性能下降曲线分析法来说,主要关注的是性能下降曲线上的各个区间和对应的拐点。

  通过识别不同的区间和拐点,从而为性能瓶颈识别和调优提供依据.目前IBM, HP,OpenSource等公司都有支持性能下降曲线法的测试工具,尤以IBM的报表功能最强。

  但性能下降曲线法只是着重考察了由并发用户数带来的软件性能缺陷,性能测试指标定义的不完全,而且对于定位代码内存泄漏、代码设计不合理等问题也收效甚微。

继续阅读