最近需要对再次对服务器进行压力测试,这里整一下最近学习到的估算方案和估算方式。以下估算方式没有考虑类似于秒杀这种极端情况。
并发值估算
1.1 经典公式
一般来说,利用以下经验公式进行估算系统的平均并发用户数和峰值数据
- 1)平均并发用户数为 C = nL/T
- 2)并发用户数峰值 C‘ = C + 3*根号C
C是平均并发用户数,n是login session的数量,L是login session的平均长度,T是值考察的时间长度
C'是并发用户数峰值
如用外卖点餐APP套入这个公式计计算下并发用户数100W用户下并发用户数大致范围:
假设外卖APP有100W个用户,而日活用户假设占12.5%即12.5W个日活用户,而每个日活用户打开APP到点餐平均时间大概为5分钟,而假设早上8点到晚上12点都会有用户使用该APP。则可以计算出一个值:
1
2
|
平均并发用户数C=125000*5/16*60=651
并发用户数峰值C`=651+3*根号 651=726
|
上面即为经典公式计算出的并发用户数,但看起来和实际情况可能有差异。
作为外卖APP大部分人都会在高峰期进行点餐,所以对于外卖APP这类应该单独进行考虑。
我们采用2/8原则来估算并发用户数,即80%的用户数会在高峰期点餐,而高峰期设定为11-12,17-19点一共5个小时,在这种情况下估算并发用户数:
1
2
|
平均并发用户数C=125000*5*0.8/5*60=1666
并发用户数峰值C`=1666+3*根号 1666=1788
|
1.2通用公式
对绝大多数场景,可以用(用户总量/统计时间)*影响因子(一般为3)来进行估算并发量。
比如,以乘坐地铁为例子,每天乘坐人数为5万人次,每天早高峰是7到9点,晚高峰是6到7点,根据8/2原则,80%的乘客会在高峰期间乘坐地铁,则每秒到达地铁检票口的人数为5000080%/(36060)=3.7,约4人/S,考虑到安检,入口关闭等因素,实际堆积在检票口的人数肯定比这个要大,假定每个人需要3秒才能进站,那实际并发应为4人/s3s=12,当然影响因子可以根据实际情况增大!
所以物联网设备其实是可以考虑为通用设备。
在比较极端的情况下考虑,100万个设备其中95%均为日活设备即95W,且假设其中80%的设备都会在3个小时内访问服务器(高峰期),则可以推算并发设备数。
1
|
950000*0.8/(3*60*60)=70/s
|
因物联网设备的不确定性较高,我们将影响因子设置为5
1
|
.70*5=350 即活跃设备数在每秒为350个。
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/m0_37263637/article/details/88649056