基于常见的性能数据对QPS、宽带、数据量、延迟、可用性等指标进行预估,不要求非常精准,但要尽量接近真实值。
开发人员应该对规模预估有比较敏锐的意识,下面几点有助于有效进行规模预估:
2的指数
指数 | 数据量预估 |
---|
10 | 1KB,近似1000 |
20 | 1MB,近似1百万 |
30 | 1GB,近似十亿 |
40 | 1TB,近似1万亿 |
50 | 1PB,近似千万亿 |
典型的延迟指标描述
一些常见的计算机操作的延迟数据,有的可能已经过时了:
一些结论:
1. 内存比磁盘快
2. 尽量避免从磁盘查找
3. 简单的压缩算法效率很高
4. 在使用网络传输数据前尽量进行压缩
5. 数据中心通常分布在不同的区域,相互传输数据需要大量时间。
典型的可用性指标描述
可用性指系统可持续稳定运行的时间。可用性越高,则设备不需要关机的时间就越长。大部分系统的可用性都在99%~100%之间。
通常使用服务等级协议(SLA,service level agreement)来描述可用性。以下是具体的可用性等效的开关机时间:
{
可用性 | 每天的关机时间 | 每年的关机时间 |
---|
99% | 14.4分钟 | 3.65天 |
99.9% | 1.44分钟 | 8.77小时 |
99.99% | 8.64秒 | 52.60分钟 |
99.999% | 864毫秒 | 5.26分钟 |
99.9999% | 86.4毫秒 | 31.56秒 |
假设:
- 每月3亿活跃用户
- 50%的用户第天都会使用Twitter
- 每个用户平均每天发2条推特
- 10%的推特含有多媒体内容
- 数据需要保存5年
预估如下:
QPS(query per second)预估:
- 每天活跃的用户数(DAU,daily active users):3亿 * 50% = 1.5亿
- 推特QPS:1.5亿 * 2 / 24小时 / 3600秒 ~= 3500
- 峰值QPS:QPS * 2 ~= 7000
存储预估:
- 每条推特大小:
- 每日媒体内容大小:1.5亿 * 2 * 10% & 1MB = 30TB
- 5年期媒体内容大小:30TB * 365 * 5 ~= 55PB