架构师才需要知道的知识:如何做容量预估和调优( 二 )


 
例如:1次核心操作,查了3次缓存、写了1次缓存、查了2次数据库、写了1次数据库、发了1次MQ消息、调了下游服务A的接口;
则对于读缓存放大倍数为3,写缓存放大倍数为1,读数据库放大倍数为2,写数据库放大倍数为1,MQ放大倍数为1,调用下游服务A的放大倍数为1 。针对写放大倍数,需要单独考虑主库是否扛得住放大倍数的qps 。
需关注:

  • 读、写的放大倍数,要分开考虑,因为分布式架构通常是一主多从,一主需要支撑所有的写QPS,多从可以支撑所有的读QPS
  • DB读放大倍数、DB写放大倍数
  • Redis读放大倍数、Redis写放大倍数
  • MQ放大倍数
  • 接口调用放大倍数等
3.2、存储资源QPS估算存储资源的QPS上限,跟机器的具体配置有关,8C32G机型的QPS上限当然要高于4C16G机型 。下表为典型值举例 。
资源类型
单实例QPS数量级(典型值)
水平扩展方式
集群总QPS估算
DB
几千
分库分表
实例个数*单实例QPS,其中实例个数的范围是1~分库个数(可达数百)
Redis
几万
Redis集群
实例个数*单实例QPS,其中实例个数的范围是1~分片个数(可达数百),总QPS可达百万级
MQ
几万
partition拆分,每个分片最多被1个服务并发消费
实例个数*单实例QPS,其中实例个数的范围是1~partition个数,总QPS可达百万级
HBase
几千?
region拆分
实例个数*单实例QPS,其中实例个数的范围是1~region个数
ES
几千?
shard拆分
实例个数*单实例QPS,其中实例个数的范围是1~shard个数

【架构师才需要知道的知识:如何做容量预估和调优】


推荐阅读