随着业务的增长,日流量从10w级别,增涨到100w级别,这时候就需要进行容量预估。

什么样的场景需要进行容量预估呢?

  • 容量有质变性增长
  • 临时运营活动
  • 新系统上线

场景一:

pm要做双十一活动,技术老大杀过来,问了两个问题:
  1. 机器能扛得住吗?
  2. 扛不住,需要加多少台机器?

那些指标需要进行容量预估?

看具体的业务 ,对应到系统侧的主要矛盾是什么,例如:

  • 数据量
  • 并发量、吞吐量
  • 宽带
  • cpu/mem/DISK等

向微博帖子等是数据量为只要矛盾,12306的抢票业务就是并发量为只要矛盾,音视频、直播业务宽带为只要矛盾,数据计算、区块连等是CPU为只要矛盾。

如何进行容量预估?

第一步:评估总访问量。

答:询问产品和运营同学活动的用户量,预计有用户会来点击?
例子:某公司要做一个APP-push的运营活动:

1. 计划在30分钟内完成5000w用户的push推送
2. 预计push消息点击率10%

push落地页系统的总访问量?

答:5000w*10%=500w

第二步:评估平均吞吐量(QPS)

答:我们假设所有的请求都发生在白天。
例子一:push落地页30分钟的总访问量是500w,平均QPS是多少?
答:500w/(30*60) = 2778,大概3000QPS.
例子二:某网站首页日均PV约8000w, 平均QPS是多少?
答:一天按4w秒算,8000w/4w=2000, 大概2000QPS。

第三步:评估峰值吞吐量QPS。(我们要抗住的是峰值QPS)

答:绘制业务趋势访问图。根据访问图来计算峰值QPS。如果没有趋势访问图,我们就根据二八原则,假设80%的请求访问在20%的时间上。但是像秒杀业务这类不能这样计算。
    根据计算得到峰值QPS为5000QPS.

第四步:评估系统、单机极限QPS;

答:压力测试,计算出一台机器的QPS,记住磁盘,内存,io,宽带都不应该是系统的瓶颈。
    假设压力测试得到,单台机器极限是1200,因为不会跑满一般为80%,也就是单台机器抗1000。
    

第五步:根据线上冗余的做决定。

答:比如线上机器有2台,峰值5000,单机1000,两台扛不住。在加3台,4台更稳。

~~~~

结论:

互联网架构设计如何进行容量评估呢(以吞吐量为例)?

  1. 评估总访问量:询问产品和运营
  2. 评估平均吞吐量:总量除以总时间,一天算4w秒。
  3. 评估峰值吞吐量QPS: 根据业务曲线图,或者二八原则。
  4. 评估系统、单机极限QPS:压力测试。
  5. 根据线上冗余的做决定:计算需求和线上冗余度差值。

你的名字
15 声望0 粉丝

要想得到你从未拥用过的东西,就要去做你从未做过的事。