Fork me on GitHub
架构设计估算

架构设计:估算

 

估算在系统设计中非常重要,这决定了你的设计是否可以满足要求,要实现比较靠谱的估算,就需要对如下几个概念熟练掌握

第一个概念:二的幂

尽管在处理分布式系统时,数据量可能是巨大的,但计算都可以归结为基础知识。为了获得正确的计算结果,关键是要知道使用2的幂的数据量单位。一个字节是一个8位的序列。一个ASCII字符使用一个字节的内存(8位)。可参考如下表格

次幂近似值名称
10 1000 1KB
20 100万 1MB
30 10亿 1GB
40 1万亿 1TB
50 1千万亿 1PB

第二个概念:关于延时指标的常见场景

注:以下指标说明来自J. Dean.Google Pro Tip: Use Back-Of-The-Envelope-Calculations To Choose The Best Design ,虽然是基于2010年的状况,但是目前这些指标还是有一定的参考价值。

操作参考时间量级
L1高速缓存 0.5 ns
分支错误预测 5 ns
L2高速缓存 7 ns
互斥器锁定/解锁 100 ns
主内存 100 ns
用Zippy压缩1K字节 10,000 ns
通过1 Gbps网络发送2K字节 20,000 ns
从内存中连续读取1MB 250,000 ns
在同一数据中心内的数据往返 500,000 ns
磁盘搜索 10,000,000 ns
从网络中连续读取1MB 10,000,000 ns
从磁盘顺序读取1MB 30,000,000 ns

上述场景也有一个可视化的工具可以查看,见Latency Numbers Every Programmer Should Know
目前展示到了 2020 年。

img

通过分析上述数字,可以得到以下结论。

  • 内存很快,但磁盘很慢。

  • 如果可能的话,要避免磁盘寻道。

  • 简单的压缩算法是快速的。

posted on 2023-04-12 06:23  HackerVirus  阅读(56)  评论(0)    收藏  举报