首页 > 其他分享 >架构设计(九):估算

架构设计(九):估算

时间:2022-12-25 21:23:44浏览次数:58  
标签:架构设计 1MB 估算 10 000 ns

架构设计(九):估算

作者:Grey

原文地址:

博客园:架构设计(九):估算

CSDN:架构设计(九):估算

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

第一个概念:二的幂

尽管在处理分布式系统时,数据量可能是巨大的,但计算都可以归结为基础知识。为了获得正确的计算结果,关键是要知道使用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

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

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

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

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

  • 如果可能的话,在通过互联网发送数据之前要进行压缩。

  • 数据中心通常在不同地区,在它们之间发送数据需要时间

第三个需要了解的概念是:系统可用时间百分比

高可用性是指一个系统在一个理想的长时间内持续运行的能力。高可用性是以百分比来衡量的,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%或以上。

参考资料

System Design Interview

标签:架构设计,1MB,估算,10,000,ns
From: https://www.cnblogs.com/greyzeng/p/17004611.html

相关文章

  • 系统架构设计师论文--企业集成2021 系统架构设计师备考分享
    --摘要本文以智慧药房项目为例,主要论述了企业集成架构设计在项目中的应用,在处方配发模块,采用了数据集成,将需要调配的处方通过接口进行应用集成实现配发业务。在统计报表模......
  • 系统架构设计师论文---架构风格2021 系统架构设计师备考分享
    --摘要架构风格在项目中的具体应用,在处方审核模块中,采用了基于规则的系统风格,将18万种药品合理用药规则作为基础规则库供处方审核调用,在自动化发药设备协同中,采用了隐式调......
  • Dubbo架构设计与源码解析(三)责任链模式
    作者:周可强一、责任链模式简介1、责任链模式定义责任链(ChainofResponsibility)模式的定义:为了避免请求发送者与多个请求处理者耦合在一起,于是将所有请求的处理者通过前一对......
  • ArcObejcts SDK开发 020 开发框架搭建-架构设计
    1、技术选型ArcObjectsSDK10.8(ArcGIS10.8),.NetFrameWork4.8,VS2022,WPF(WinForm)、DEV。用的时候,打包的ArcObjectsSDKdll文件,可以使用低版本的,例如10.2,这样可以保障Arc......
  • Dubbo架构设计与源码解析(三)责任链模式
    作者:周可强一、责任链模式简介1、责任链模式定义责任链(ChainofResponsibility)模式的定义:为了避免请求发送者与多个请求处理者耦合在一起,于是将所有请求的处理者通过前......
  • 基于Go语言实现高并发推荐系统架构设计
    你好!我是封幼林,在小年糕负责推荐系统,主要从事服务架构相关工作。今天我要和你分享的话题是《高并发推荐系统架构设计》。这次分享主要分为以下这几个部分:推荐系统的基......
  • Dubbo架构设计与源码解析(二) 服务注册
    一、Dubbo简介Dubbo是一款典型的高扩展、高性能、高可用的RPC微服务框架,用于解决微服务架构下的服务治理与通信问题。其核心模块包含【RPC通信】和【服务治理】,其中......
  • 高并发架构设计经验总结
      高并发解决的核心问题是在同一时间上有大量的请求过来,然后我们的系统要怎么抗住这些请求带来的压力。本文从基础设施层、服务端架构层、服务应用层分别做了一个简单......
  • PowerDotNet平台化软件架构设计与实现系列(15):支付平台
    PowerDotNet个人项目中功能全面而强大的一个系统是支付平台。我对PowerDotNet的自信很大程度上来自于经过PowerDotNet重写后的支付、财务、结算、CRM等业务型公共服务系统......
  • 高并发架构设计经验总结
      高并发解决的核心问题是在同一时间上有大量的请求过来,然后我们的系统要怎么抗住这些请求带来的压力。本文从基础设施层、服务端架构层、服务应用层分别做了一个简单......