news 2026/9/15 18:43:25

system-design-notes:2的幂次为什么必背?快速估算数据量的技巧清单

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
system-design-notes:2的幂次为什么必背?快速估算数据量的技巧清单

system-design-notes:2的幂次为什么必背?快速估算数据量的技巧清单

【免费下载链接】system-design-notesNotes of the book System Desgin Interview - An Insider's Guide项目地址: https://gitcode.com/GitHub_Trending/sy/system-design-notes

系统设计面试中,快速估算数据量是最考验基本功的环节:QPS 多少?存储要多少 TB?需要几台服务器?这些问题的答案不用精确,但必须在几分钟内算出来。system-design-notes 这个开源项目整理了《System Design Interview》一书第 2 章Back-of-the-Envelope Estimation(拍脑袋估算)的全部核心内容,其中"2 的幂次表"就是快速估算数据量必背的第一张表。这篇文章帮你把估算技巧一次性讲清楚。

为什么"2 的幂次"是估算数据的基石?

计算机的世界是二进制的世界:内存按字节翻倍分配、带宽按 bit 计算、磁盘寻址按 2 的幂次进行。所以工程师估算数据量时,习惯用 2 的幂次来"锚定"数量级:

  • 知道2^10 ≈ 1K,就能把"1000"和"1KB"直接划等号;
  • 知道2^20 ≈ 1M,就能心算"150 万用户 ≈ 2^20"级别的流量;
  • 知道2^40 ≈ 1T,就能判断"每天 30TB 的媒体数据"意味着什么量级。

背下这张表之后,KB / MB / GB / TB / PB 之间的换算、用户数和请求数与存储量之间的换算,都能口算完成,这正是快速估算数据量与存储需求的关键。

![系统设计面试必背的2的幂次快速估算对照表:2^10≈1KB、2^20≈1MB、2^30≈1GB、2^40≈1TB、2^50≈1PB](https://raw.gitcode.com/GitHub_Trending/sy/system-design-notes/raw/9d8388721e7231442763ad37398b8d82224aa68f/02. Back Of the Envelope Estimation/images/power-of-two.png?utm_source=gitcode_repo_files)

这张"2 的幂次快速估算表"是本章的灵魂,完整来源见 02. Back Of the Envelope Estimation/Readme.md。

5 个必背的估算锚点

幂次近似值含义
2^10≈ 1 Thousand1 KB
2^20≈ 1 Million1 MB
2^30≈ 1 Billion1 GB
2^40≈ 1 Trillion1 TB
2^50≈ 1 Quadrillion1 PB

记忆口诀:从 1KB 开始,每加 10 个 2,单位升一档(KB → MB → GB → TB → PB)。

延迟数字:估算系统性能的"第二张表"

除了数据量,估算"快慢"同样重要。项目整理了一份每个程序员都应知道的延迟数字(2020 数据),它回答的是"这一步到底要花多久":

操作延迟
L1 缓存访问0.5 ns
L2 缓存访问7 ns
主内存访问100 ns
SSD 随机读150 µs
机械硬盘随机寻道10 ms
数据中心内往返500 µs
跨区域数据中心150 ms

💡 三个关键结论(来自 Readme.md 第 21-39 行):

  • 内存快、磁盘慢——热点数据尽量放内存;
  • 尽可能避免磁盘随机寻道——一次 HDD seek 约 10 ms,是 L1 缓存的两万倍;
  • 上网传输前压缩数据——用 CPU 换带宽,通常划算。

估算 QPS 的完整套路:以 Twitter 为例

背完两张表,就可以动手估算了。项目用 Twitter 做标准案例(Readme.md 第 55-76 行),完整流程如下:

第一步:写下假设(估算的前提)

  • 月活 3 亿(300M MAU);
  • 日活 50%(DAU = 150M);
  • 每人每天发 2 条推文;
  • 10% 的推文带媒体;
  • 数据保留 5 年。

第二步:算平均 QPS

150,000,000 × 2 条 ÷ 24 小时 ÷ 3600 秒 ≈3500 QPS

第三步:算峰值 QPS(流量通常有尖峰,简单起见翻倍)

2 × 3500 ≈7000 QPS

第四步:算存储需求

  • 单条推文 ≈ tweet_id 64B + 文本 140B + 媒体 1MB ≈ 1MB;
  • 每天媒体存储 = 150M × 2 × 10% × 1MB =30TB/天
  • 5 年总存储 ≈ 30TB × 365 × 5 ≈55PB

看到 55PB,再对照上面的幂次表(2^50 ≈ 1PB),你就有直觉了:这是一个 PB 级、必须分片 + 多数据中心的问题,而不是一台服务器能扛的。

![单服务器架构到水平扩展的演进示意图,说明快速估算数据量后决定如何扩展系统](https://raw.gitcode.com/GitHub_Trending/sy/system-design-notes/raw/9d8388721e7231442763ad37398b8d82224aa68f/01. Scaling/images/horizontal-scaling.png?utm_source=gitcode_repo_files)

估算结果直接指导架构选择:数据量小用 单服务器架构 即可起步,如图中所示,从单台 Web Server 出发(见 01. Scaling/Readme.md),当 QPS 和存储估算超标后,再升级为水平扩展的多服务器集群。

4 个让估算又快又准的技巧

项目总结的估算技巧(Readme.md 第 80-98 行),每一条都来自实战:

  1. 大胆四舍五入:99987 ÷ 9.1 ≈ 100,000 ÷ 10 = 10,000。精度不重要,过程才重要;
  2. 写下假设:所有前提条件白纸黑字写下来,方便回溯和修改;
  3. 标注单位:写"5MB"而不是"5",避免口径歧义;
  4. 记住 5 类常见场景:QPS、峰值 QPS、存储需求、缓存内存需求、服务器台数——面试 90% 的估算都落在这五类里。

延伸阅读:把估算用到 28 章设计案例里

估算只是第 2 章,system-design-notes 的 28 个系统设计案例几乎都在反复使用这些技巧。推荐路径:

  • 03. System Design Framework/Readme.md:面试框架,估算发生在哪一步;
  • 04. Rate Limiter/Readme.md:QPS 估算的直接应用——限流器设计;
  • 22. Hotel Reservation System/Readme.md:其中就有一张 QPS 估算图(qps-estimation.png),和第 2 章方法完全一致。

小结

必背内容用途
2 的幂次表(2^10 → 2^50)数据量、存储量心算
延迟数字(0.5 ns → 150 ms)性能瓶颈定位
QPS = 日请求量 ÷ 86400流量估算
峰值 ≈ 2× 平均值容量规划
四舍五入 + 写假设 + 标单位估算表达规范

花 10 分钟背熟"2 的幂次表",再花 10 分钟把 Twitter 案例的手算流程走一遍,你就掌握了系统设计里最常用的快速估算数据量技巧 🎯

【免费下载链接】system-design-notesNotes of the book System Desgin Interview - An Insider's Guide项目地址: https://gitcode.com/GitHub_Trending/sy/system-design-notes

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/15 18:41:51

TradingView Advanced Charts图表库集成与版本特性解析

简介:TradingView 2020-2021 年最新版 charting_library-master 资源包,面向股票、期货、外汇交易者及需要集成专业图表能力的 Web 开发者,提供 TradingView 图表库的核心源码与静态资源,可帮助用户在自有平台中实现 K 线图、技术…

作者头像 李华