【性以分析常案例】

发布时间 2023-10-18 16:27:44作者: xhylwq
常用分析思路:
1)2/8法则
2/8法则:80%的业务量在20%的时间里完成。这里,业务量泛指访问量,请求数,数据量等
 
2)正态分布
 
3)按比例倍增
 
4)响应时间2-5-8原则
就是说,一般情况下,当用户能够在2秒以内得到响应时,会感觉系统的响应很快;当用户在2-5秒之间得到响应时,会赶紧系统的响应速度还可以;当用户在5-8秒以内得到响应时,会赶紧系统的速度很慢,但是还可以接受;而当用户在超过8秒后仍然无法得到响应时,会感觉系统糟糕透了,或者认为系统已经失去响应。
注意:这个要根据实际情况,有些情况下时间长点也是可以接受的,好比12306
 
举例:
某公司后台监控,根据一段时间的采样数据,分析得出日高峰时段(11:00-14:00)用户下单请求数平均为1000,峰值为1500,根据这个计算并发请求数
 
时段:3个小时 -> 3 x 60 x 60 = 1080s
业务量:1500
吞吐量:1500 * 80% / (1080 * 20%) = 5.56请求数/s
 
假设用户下单遵循正态分布,那么并发请求数峰值会肯定大于上述估算的吞吐量
 
注意:
1、2/8原则计算的结果并非在线并发用户数,是系统要达到的处理能力(吞吐量)
2、如果要求更高系统性能,根据实际情况,也可以考虑1/9原则或其它更严格的算法
3、以上估值只是大致的估算,不是精确值
 
举例:
想了下,暂时没想到啥好的例子,大致就说一些涉及到数据量的性能测试,比如报表统计,或者是大数据挖掘,查询等,怎么去估算数据量?
 
数据生命周期:
一般来说,数据都是有一定的生命周期的,时间的选取需要结合数据周期考虑。这里假设3年后系统性能仍然需要满足业务需求。
 
数据增长率:
如果是老项目,可以考虑对应功能主表历史数据存放情况
这里假设按年统计,比如第一年 10000,第二年 15000,第三年 20000,第四年25000,那么我们得出,以第一年为基准,数据增长率分别为 0.5,1,1.5,每年在上一年的基础上,以5000的速度增长
预估3年后,数据增长率为 3,需要测试数据量为 (1+3)x 10000 = 40000
 
注意:
1、实际数据一般是没上面举例那么规律的,只能大致估算数据增长率。
2、一些大数据量的性能测试除了和数据量相关,还涉及到数据分布等,比如查询,构造数据时需要结合实际,尽量贴近实际。
3、不同业务模块,涉及表不一样,数据量要求也是不一样的,需要有区别的对待。

https://developer.aliyun.com/article/1195689?spm=5176.28261954.J_7341193060.32.24bf2f3dB7bzYq&scm=20140722.S_community@@%E6%96%87%E7%AB%A0@@1195689._.ID_community@@%E6%96%87%E7%AB%A0@@1195689-RL_%E5%A6%82%E4%BD%95%E8%AE%BE%E8%AE%A1%E6%B5%8B%E8%AF%95%E6%96%B9%E6%A1%88-LOC_llm-OR_ser-V_3-RK_rerank-P0_8