系统设计(2)

封底估算(back of the envelope estimate)

对于有些系统设计,我们需要估算读写数字,存储大小等等。

1 术语

QPS:Queries per second: 系统每秒处理查询请求数量

Peak QPS: 峰值QPS, 一般为QPS的2倍(极个别系统需要自行区分比如双11的峰值就是很多倍)

DAU:Daily active user: 日活用户(还有月活MAU和周活用户WAU)

CDN:Content Delivery Network 内容分发网络

2 存储单位

一字节byte等于8bit(位)

一个字母等于1byte(ASCII),中文大多数3bytes

一条推文:平均140个字母,就是140byte

一张图片:平均1MB(如果是设计专业图片网站,那么就要10MB以上了,具体问题具体分析)

3 例子

(1)推特

MAU:3亿月活用户

DAU:1.5亿日活用户

推文估算:一个用户每天平均发送2条

图片估算:10%包含图片

数据存储时间:5年

QPS:DAU * 2(2条推文)/ 24h / 3600s = 每秒3500

PEAK QPS = 7000

推文ID:64bit (雪花算法)

文本:140 字节

图片:1 MB

图片存储量:1 MB * 10% * 2 * 1.5亿 = 30TB / 天

5 年存储量:30TB * 365 * 5 = 55 PB

(2)Tiny URL

URL生成数:1亿每天 = 1160个每秒(写入数据库)

URL映射:假设10倍于URL生成数 11600 每秒(从短URL找到长URL)

数据存储时间:10年

存储大小:长短URL一起占100个字母,10年 * 100byte * 365 * 1亿 = 36.5TB

(3) 爬虫

预估:每月爬10亿个网站

QPS:10亿 / 30 / 24/ 3600 = 400/s

PEAK QPS = 800 

预估网页大小: 500KB

每月存储: 10 亿 * 500 KB = 500TB

存放时间: 5年,500TB * 12 * 5 = 30PB

(4)自动补全系统

DAU预估:1000万

搜索预估:每人平均一天搜索10次

搜索大小:20个字母(约等于20个请求)(还没算写一半搜索到了的情况)

QPS: 1000w * 10 * 20 / 24 /3600 = 24000

PEAK QPS = 48000

数据存放:假设我们要存用户输入的查询数据,输入20%, 1000W * 10 * 20 * 0.2 = 0.4GB每天

(5)视频分享系统

DAU:500W

读操作(看视频): 一天5次

写操作(上传):10% 用户一天一次

视频大小: 300MB,500W * 0.1 * 300MB = 150TB每天

CDN价格:1GB花0.02美元, 500W*5个视频*0.3GB*0.02 = 15w美元/天

(6)云盘

DAU:1000W,总人数5000W

免费空间额度:10GB

总存储:5000W * 10GB = 500PB

读写预估:一个用户一天上传下载2个文件

QPS:1000W * 2 / 24 / 3600 = 240 (只算了下载)

PEAK QPS = 480

  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值