业务系统往往会被问到一些资源的问题,需要多少机器,机器足不足以支撑当前的业务增长等,这些都是系统容量的一些估算问题。
容量设计需要考虑的维度: 业务规划 + 架构复杂度 + 组件模块 + 高可用 + 安全 + 存储复杂度
容量指标:单机QPS,峰值,平均值,用户数、并发、稳定性
有多少数据量,数据维度有哪些,服务业务有哪些,数据增长预想如何等
这里我们只是谈谈简单的业务通过单节点处理的情况(当然接入网关的处理能力又取决于后端的服务集群的处理能力这里先忽略)
8小时总访问量:1万用户 10%的常驻访问率 15秒上报周期(每分钟访问4次,每天按照8小时计算)得出日访问量 200万 ~2000万 QPS : 200~2000万 / 8 60 60 ≈ 100 ~ 700 QPS
并发数 = QPS 平均响应时间,假设平均响应时间=100ms,那么100~700 01 ≈ 10 ~ 70
并发数 =(200~2000万/ 8 / 3600) 影响因子(一般为3)来进行估算并发量。≈ 200~ 2000
最终得出结论,1万量车每15秒上报一次数据。只需要支持 100左右并发处理能力即可了。
如果单节点服务器的QPS是1000,那么一台机器就能满足 1万台车的数据上报。
常见的容量评估包括数据量、并发量、带宽、CPU/MEM/DISK等,
以并发量为例,通过五个步骤,解答业务的疑虑。
对于一个运营活动的访问量评估,或者一个系统上线后PV的评估,问业务部门获得。 例如一个推送活动:计划10分钟,推送1000w用户,10%的消息点击率 那么系统的访问量:1000w 10% = 100w。10分钟会有100w的访问。
总量除以总时间,如果按照天评估,白天12小时大概4w秒 100w / 3060 ≈ 600QPS 说明系统需要支持至少 600QPS的访问能力持续10分钟。
需要根据业务访问趋势图预估,可能非常大,暂定为25倍
600 25 = 1500QPS
假设我们的单节点访问能力优化到 1000QPS (tomcat压测单机只能抗住1200的QPS 不能打满打八折 QPS1000)
五个确认步骤
这里我们讨论个场景问题:如果有如下需求,我们应该如何满足业务 一、100万用户秒杀10个商品 二、1秒杀支持1000笔交易
所以从技术角度上系统应该如何做好限流、并发安全、资源d性。就能初步的评估需要多少资源能满足业务了。 那么我们再来分析下上面两个业务需求。 提取下关键信息:100万用户、库存10个商品、业务时间要求1秒。 我们可以得出两个维度的信息
显然第二个是不太合适的。因为缺少单位时间的业务量,只有用户数。所以如果想要完成评估,单位时间的业务要求才是基础考虑要素。 一个简单的方案:网关层满足限流能力,支持10QPS的处理能力,那么需要增加一台机器即可。剩下的100万用户都访问拒绝,缓冲队列只支持10个用户进入。
如有不对欢迎指正,感谢阅读。
计算公式:
100W个用户,95%均为日活设备即95W
950000 08/(3 60 60)=70/s
70 5=350 即活跃设备数在每秒为350个
100万个设备,日活占125%,用2/8原则来估算并发用户数,即80%的用户数会在高峰期点餐,一共5个小时
平均并发用户数C=125000 5 08/5 60=1666
并发用户数峰值C`=1666+3 根号 1666=1788
1)平均并发用户数为 C = nL/T
2)并发用户数峰值 C‘ = C + 3根号C
C是平均并发用户数,n是login session的数量,L是login session的平均长度,T是值考察的时间长度
C’是并发用户数峰值
QPS和并发量
QPS(q) :每秒处理的请求数量 并发量 (c):同时支持多少个用户在线。与服务器的请求处理模型有关,如果是BIO模型,则并发量就受限于最大能支持多少个线程,如果是NIO模型,则并发量与socket连接数相关 平均响应时间(t):单位为毫秒
他们之间的关系是 q = (1000/t) c
单台机器的QPS为1000QPS,并发为200
应该可以用vlookup函数解决,你可以试试看。在BOM表中,需要填入database表中数据的列中,输入“=vlookup(A,B,C,D)”
vlookup函数包括四项
第一项,就是括号里面的“A”,是两个表格中一致的项,就是你说的“ABC”,excel会根据这项在database表中给你找数据;
括号里面的第二项“B”代表一个区域,让你选出来,在哪个范围内查找“A”这个区域就是database表;
括号里面第三项“C”是找到之后返回到什么值,是一个数字,代表database表中的第几列;就是说,找到A之后应该显示database表中的什么
比如说你要在database表中查找含税价格,含税价格在第四列,那么这个C就是数字4;
括号里面的“D”你就写数字0就成。
有关vlookup的教程很多,我写的不太明白~你可以上网找找,或者用excel的帮助功能。用几次就会了。非常好用的函数。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)