首先要指定总用户数、日活跃数;并且找出业务发生主要的时间点,如果没有明确的需求,那就 2/8 原则来弄:80% 的业务发生在 20% 的时间内。

(1)  计算平均的并发用户数: C = nL/T                    

 即:平均并发数=总用户数*用户在线时长/总工作时间  

(2)  并发用户数峰值: C’ ≈ C+3*SQRT(C)

               即:峰值并发数=平均并发数+3*(平均并发数^1/2)    

公式(1)中,C是平均的并发用户数;n是login session的数量;L是login session的平均长度;T指考察的时间段长度。

公式(2)则给出了并发用户数峰值的计算方式中,其中,C’指并发用户数的峰值,C就是公式(1)中得到的平均的并发用户数。该公式的得出是假设用户的login session产生符合泊松分布而估算得到的。

假设有一个抽奖系统,该系统有200000个用户,平均每天大约有30000个用户要访问该系统,对一个典型用户来
说,一天之内用户从登录到退出该系统的平均时间为2分钟,在一天的时间内,用户只在10分钟内使用该系统。

则根据公式(1)和公式(2),可以得到:

C=200000*2/10=40000

C'≈40000+3*根号40000=40000+3×200=40600

活动用户数=系统运行时间×并发用户数/操作时间。

例如:已知活动用户数3W,如果完成一次操作的平均时间为1分钟,场景运行时间为10分钟,那么并发用户数N的计算为:
24*3600N/10*60=30000;
N=208.3

例如:

日活跃量为20W,如果没有明确的需求,那就 2/8 原则来弄:80% 的业务发生在 20% 的时间内,以工作时间8小时为例:
80%*20W/(3600*20%*8)=28,也就是每秒至少完成 28 笔,如果是 30 秒内就要完成 20W 笔那就是另外一回事了,直接除:20W/30=6667,每秒 6667 笔。
        如果每笔业务最慢能接受的响应时间是 2S,那并发就好算了:28 * 2 或者 6667 * 2,就是需要分别确保在 56 和 13334 并发的情况下响应时间在 2S 以内,服务器资源使用率在可控范围内便可。至于是否有其他的额外事物时间,就需要根据实际业务场景来。
        举例的测试需求属于容量范畴,不应该单纯的考虑压力测试场景,压力测试的主要目标是限定资源、持续加压,找到系统瓶颈 的点,这跟需要在多久时间内完成多少笔业务其实是两个维度的事情。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐