zoukankan      html  css  js  c++  java
  • 性能测试第三章

    性能测试模型分析

    前两章对基本的性能测试概念有了深刻的理解,为了能把这些概念应用到实际项目中,对典型的性能测试模型进行学习,逐步把概念、指标运用起来,并培养自己的观察分析能力

    1、曲线拐点模型分析

    1) X轴代表并发用户数,Y轴代表资源利用率、吞吐量、响应时间。X轴与Y轴区域分别是轻压力区、重压力区、拐点区。

    2)随着并发用户数的增加,在轻压力区的响应时间变化不大,比较平缓,进入重压力区后呈现增长的趋势,最后进入拐点区后倾斜率增大,响应时间急剧增加。

    3)接着看吞吐量,随着并发用户数的增加,吞吐量增加,进入重压力区后逐步平缓,到达拐点区后急剧下降,说明系统已经达到了处理极限,有点要扛不住的感觉。

    4)同理,随着并发用户数的增加,资源利用率逐步上升,最后达到饱和状态。

    5)最后把所有指标融合在一起,随着并发用户数的增加,吞吐量与资源利用率增加,说明系统在积极处理,所以响应时间增加得并不明显,处于较好得状态。但随着并发用户数得持续增加,压力也在持续加大,吞吐量与资源利用率达到了饱和,随着吞吐量急剧下降,响应时间急剧增长。轻压力区与重压力区得交界点时系统得最佳并发用户数,因为各种梨园都利用充分,响应也很快;而重压力区与拐点区得交界点就是系统得最大并发用户数,系统性能就会急剧下降甚至崩溃。

    2、地铁模型分析

    拿地铁分析,在此深刻理解下性能。早上乘坐地铁上班,最典型就是北京地铁1、5、10、13号线等,为了方便理解分析,先做如下假设。

    &某地铁站进站只有3个刷卡机。

    &人少得情况下,每位乘客很快就可以刷卡进站,假设进站需要1s。

    &乘客耐心有限,如果等待超过30min,就会暴躁、唠叨、甚至选择放弃。

    按照上述得假设,最初会出现如下场景。

    场景1:只有1名乘客进站时,这名乘客可以在1s得时间内完成进站,且只用了一套刷卡机,剩余2名刷卡机等待着。

    场景2:只有2名乘客进站时,2名乘客仍都可以在1s得时间内完成进站,且利用了2台刷卡机,剩余1台刷卡机等待着

    场景3:只有3名乘客进站时,3名乘客还能在1s的时间内完成进站,且利用了3台刷卡机,资源充分得到利用

    想到这里,觉得越来越远意思了。原来技术与生活这么息息相关,真的可以快乐学习哦。随着上班高峰的到来,乘客也越来越多,新的场景也慢慢出现了。

    场景4:A、B、C、三名乘客进站,同时D、E、F乘客也要进站,因为A、B、C先到,所以D、E、F乘客需要排队,等A、B、C乘客进站完成后才行。那么,A、B、C乘客进站时间为1s,而D、E、F乘客必须等待1s,所以他们3位在进站的时间是2s。

    通过上面这个场景可以发现,每秒能使3名乘客进站,第1s是 A,B,C,第2s是D,E,F,但是对于乘客D,E,F来说,’响应时间‘延长了。

    场景5:假设这次进站一次来了9名乘客,根据上面的场景,不难推断出,这9名乘客中有3名的响应时间为1s,有3名乘客的响应时间为2s(等待1s+进站1s),还有3名的响应时间为3s(等待2s+进站1s)。

    场景6:假设这次进站一次来了10名乘客,根据上面的推算,必须存在1名乘客的响应时间为4s,如果随着大量的人流涌入进站,可想而知就会达到乘客的忍耐极限。

    场景7:如果地铁正好在火车站,例如:北京西站,北京站。每名乘客都拿着大小不同的包,有的乘客拿着的包太大导致卡在刷卡机,这样每名乘客的进站时间就会又不一样。

    场景8:进站的乘客越来越多,3台刷卡机已经无法满足需求,于是为了减少人流的积压,需要再多开几个刷卡机,增加进站的人流与速度(提升TPS、增大连接数)。

    场景9:终于到了上班高峰时间了,乘客数量上升太快,现有的进站措施已经无法满足,越来越多的人开始抱怨、拥挤、情况越来越糟。单单增加刷卡机已经不行了,此时的乘客就相当于“请求”,乘客不是在地铁站进站排队,就是在站台排对等车,已经造成严重的“赌赛”,那么增加发车频率(加快应用、数据库的处理速度)、增加车厢数量(增加内存、增大吞吐量)、增加线路(增加服务的线程)、限流、分流等多种措施便应需而生。

    通过本章的学习,深入理解了性能测试的作用、重要性以及意义,同时掌握了重要的术语、概念、指标,并把这些知识应用带实际生活场景中。

  • 相关阅读:
    【转】 java中Class对象详解和类名.class, class.forName(), getClass()区别
    106. Construct Binary Tree from Inorder and Postorder Traversal
    105. Construct Binary Tree from Preorder and Inorder Traversal
    107. Binary Tree Level Order Traversal II
    109. Convert Sorted List to Binary Search Tree
    108. Convert Sorted Array to Binary Search Tree
    110. Balanced Binary Tree
    STL容器迭代器失效问题讨论
    113. Path Sum II
    112. Path Sum
  • 原文地址:https://www.cnblogs.com/sanya/p/12792309.html
Copyright © 2011-2022 走看看