架构基础-容量评估
系统容量预估
业务系统往往会被问到一些资源的问题,需要多少机器,机器足不足以支撑当前的业务增长等,这些都是系统容量的一些估算问题。
服务器容量
容量设计需要考虑的维度:业务规划 + 架构复杂度 + 组件模块 + 高可用 + 安全 + 存储复杂度
容量指标:单机QPS,峰值,平均值,用户数、并发、稳定性
有多少数据量,数据维度有哪些,服务业务有哪些,数据增长预想如何等
这里我们只是谈谈简单的业务通过单节点处理的情况(当然接入网关的处理能力又取决于后端的服务集群的处理能力这里先忽略)
1. 缘起
容量评估是架构师必备的技能之一,场景的容量评估包括数据量、并发量、带宽、CPU/MEM/DISK等。
文章以并发量为例。
2. 步骤
2.1 如何知道总访问量?
答案:询问业务方,询问运营,询问产品,对运营活动或产品上线后的预期是什么?
比如:xx要做一个App-Push的运营活动,计划在30分钟内完成5000w用户的push推送,预计push消息点击率10%,求push落地页系统的总访问量?
5000w * 10% = 500w
2.2 评估平均访问量QPS
如何知道平均访问量QPS?
有了总量,除以总时间即可,如果按照天评估,一天按照4w秒计算(一天共24h * 60min * 60s = 8w秒,一般假设所有请求都发生在白天,所以一般来说一天只按照4w秒评估)
push落地页系统30min的总访问量是500w,求平均访问量QPS?
500w / (30 * 60) = 2778,大概3000QPS。
2.3 评估高峰QPS?
系统容量规划时,不能只考虑平均QPS,而是要抗住高峰的QPS,如何知道高峰QPS?
答案:根据业务特性,通过业务访问曲线评估
举例:日均QPS为2000,业务访问趋势图如下图,求峰值QPS预估?
从图中可以看出,峰值QPS大概是均值QPS的2.5倍,日均QPS为2k,于是评估出峰值QPS为5000。
2.4 评估系统、单机极限QPS
如何评估一个业务,一个服务单机的极限QPS?
压力测试
在一个服务上线前,一般来说是需要进行压力测试的,以App-Push运营活动落地页为例(日均QPS2000,峰值QPS5000)。
假设单机极限的QPS是1200,一般来说,线上系统是不会跑满到极限的,打个8折,单机线上允许跑到QPS1000。