并发估算

1、性能测试解惑之并发压力

http://www.cnblogs.com/pohome/articles/2073283.html

如何估算并发

那么我们如何来估算这个并发值呢?

在此我们需要作出说明,一般我们需要的数据应该来自于实际数据(比如系统日志的记录),这样最可靠,只有当系统新启动且无任何数据参考的时候我们才需要进行估算。

 

比如我们测试地铁大厅的性能情况,该如何去估算当乘客进入大厅时,地铁大厅的性能呢?下面以笔者经常乘坐的地铁5号线立水桥南站为例进行估算,过程与数据仅供参考。

假定每天从该站乘坐地铁的人数为5万人次,每天的早高峰为7-9点,晚高峰为6-7点,根据8/2原则,80%的乘客(人次)会在高峰期乘坐该站的地铁,则平均每秒到达地铁检票口的人数为(50000×80%)/(3×60×60) = 3.7~=4人,当然这个4人不能作为计算所用的并发值,因为对此时的受压入口检票口来说,4只是每秒到达的压力(即请求)数量,考虑到安检、入口关闭等因素,实际堆积在检票口的人数可能要大于这个数目,假定每个人需要3秒左右才能入站,则实际并发应该为(4人/秒)×3秒=12。当然我们必须指出,这种方法得到的情况并非极端值,因为即使作为早晚高峰,人数的分布也不是平均的(具体情况需要根据实际数据进行分析),但对大部分系统的大部分场景,我们可以用(用户总量/统计时间)×影响因子(一般为3,为经验系数)来进行估算。

 

实际上,还有一种估算方法,而这种估算方法为国内众多书籍、文章反复转载,其来源与Eric Man Wong在2004年公布的一篇“论文”《Method for Estimating the Number of Concurrent Users》,其核心公式如下:

C=nL/T

其中,C代表在线用户,n代表执行事务的用户总数,L代表每用户的平均在线时间,T为待统计的总时间,依旧以地铁入站的情况进行估算,依旧考虑8/2原则,即n为50000*80%人,T为3小时,L即我们在地铁中停留的时间(从进站到上车),假定为5分钟,因此得到的公式为:

C=(50000人×80%×5min)/(3×60min) = 1111

 

2、Eric's并发用户数估算与Little定律的等价性

http://www.cnblogs.com/hundredsofyears/p/3360305.html

国内性能测试的领域有一篇几乎被奉为大牛之作的经典文章,一个名叫Eric Man Wong 2004年发表了名为《Method for Estimating the Number of Concurrent Users》,里面介绍了一种对系统并发用户数估算的公式,并较为详细的阐述了过程以及证明方法。这个公式使用非常简单,很多性能测试工程师都在自己的项目中使用或者打算尝试使用,以至于在不分场合以及不具体分析系统用户行为的情况下使用。本文不打算深入探讨该公式的适用范围,我会在以后的文章中探讨这个问题。

posted @ 2017-06-06 14:23  奔跑的梓鸥  阅读(418)  评论(0编辑  收藏  举报