版本比较
比较
标识
- 该行被添加。
- 该行被删除。
- 格式已经改变。
基于常见的性能数据对QPS、宽带、数据量、延迟、可用性等指标进行预估,不要求非常精准,但要尽量接近真实值。
开发人员应该对规模预估有比较敏锐的意识,下面几点有助于有效进行规模预估:
2的指数
锚 | ||||
---|---|---|---|---|
|
指数 | 数据量预估 |
---|---|
10 | 1KB,近似1000 |
20 | 1MB,近似1百万 |
30 | 1GB,近似十亿 |
40 | 1TB,近似1万亿 |
50 | 1PB,近似千万亿 |
典型的延迟指标描述
锚 | ||||
---|---|---|---|---|
|
一些常见的计算机操作的延迟数据,有的可能已经过时了:
操作 | 耗时 |
---|---|
L1缓存引用 | 0.5ns |
分支预测错误 | 5ns |
L2缓存引用 | 7ns |
加锁/解锁 | 100ns |
主内存引用 | 100ns |
使用Zippy压缩1K数据 | 10000ns=10us |
在1Gbps网络上发送2K数据 | 20000ns=20us |
从内存连续读取1MB数据 | 50000ns=50us |
磁盘查找 | 10ms |
从网络上读取1MB数据 | 10ms |
从磁盘上读取1MB数据 | 30ms |
加州-荷兰-加州 RTT时间 | 150ms |
上海到纽约 RTT时间 | 290ms,来自Ping time between New York and other cities - WonderNetwork |
一些结论:
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秒 |
实例:预估Twitter QPS和存储需求
假设:
- 每月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
存储预估:
- 每条推特大小:
- id 64字节
- 文本 140字节
- 媒体内容 1MB
- 每日媒体内容大小:1.5亿 * 2 * 10% & 1MB = 30TB
- 5年期媒体内容大小:30TB * 365 * 5 ~= 55PB
目录 |
---|