架构设计(九):估算
架构设计(九):估算
作者:Grey
原文地址:
估算在系统设计中非常重要,这决定了你的设计是否可以满足要求,要实现比较靠谱的估算,就需要对如下几个概念熟练掌握
第一个概念:二的幂
尽管在处理分布式系统时,数据量可能是巨大的,但计算都可以归结为基础知识。为了获得正确的计算结果,关键是要知道使用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 年。
通过分析上述数字,可以得到以下结论。
-
内存很快,但磁盘很慢。
-
如果可能的话,要避免磁盘寻道。
-
简单的压缩算法是快速的。
-
如果可能的话,在通过互联网发送数据之前要进行压缩。
-
数据中心通常在不同地区,在它们之间发送数据需要时间
第三个需要了解的概念是:系统可用时间百分比
高可用性是指一个系统在一个理想的长时间内持续运行的能力。高可用性是以百分比来衡量的,100%意味着一个服务没有停机时间。大多数服务在99%和100%之间。服务水平协议(SLA)是服务提供者的一个常用术语。这是你(服务提供商)和你的客户之间的协议,这个协议正式定义了你的服务将提供的正常运行时间水平,正常运行时间传统上是以九为单位衡量。九位数越多,越好。如表2-3所示,九位数与预期的系统停机时间相关。
可用性 | 平均每天停机时间 | 平均每年停机时间 |
---|---|---|
99% | 14.40分钟 | 3.65天 |
99.9% | 1.44分钟 | 8.77小时 |
99.99% | 8.64秒 | 52.6分钟 |
99.999% | 864毫秒 | 5.26分钟 |
99.9999% | 86.4毫秒 | 31.56秒 |
云供应商亚马逊、谷歌和微软将其SLA设定为99.9%或以上。
参考资料#
作者:GreyZeng
出处:https://www.cnblogs.com/greyzeng/p/17004611.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
你可以在这里自定义其他内容
本文来自博客园,作者:Grey Zeng,转载请注明原文链接:https://www.cnblogs.com/greyzeng/p/17004611.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?