0%

估算最佳方案

估算最佳设计

2的幂

计算机世界中通常用2的幂来表示大小,但是我们对2的幂的数量大小并不敏感,现实中更擅长用十进制的数来表示大小,这里总结一下2的幂的近似值。

Untitled

稍微总结一下

$$
2^{10} = 1千 \ 2^{20}=100万 \ 2^{30} = 10亿
$$

常见操作耗时

Untitled

谷歌工程师杰夫·迪恩(Jeff Dean)提倡使用粗略的计算来评估不同的设计,我们可以用图中常见的这些操作耗时来评估系统的性能。

Google Pro 提示:使用信封计算来选择最佳设计 - 高可扩展性 - (highscalability.com)

需要注意的一些事项:

  • 数据中心距离很远,因此在它们之间发送任何内容需要很长时间。
  • 内存快,磁盘慢。
  • 通过使用简单的的压缩算法,可以节省大量(2倍)的网络带宽。
  • 写入成本是读取成本的 40 倍。
  • 全球共享数据成本高昂。这是分布式系统的一个基本限制。共享大量写入对象中的锁争用会降低性能,因为事务变得序列化且速度缓慢。
  • 针对低写入争用进行优化。
  • 优化范围。尽可能并行地进行写入。

可用性相关数字

现在来看看什么是高可用,对于一个系统的可用性一般用百分比来衡量,一般可用性能达到99%的系统已经是高可用系统了,对于一些提供基础云服务商来说,它们通常会说自己的可用性达到了99.999%,按照下方的图表来比较,99.999%也就是每年大概只有5.26分钟处于不可用状态。

Untitled

SLA(服务水平协议)是服务提供商普遍使用的一个术语,它规定了提供的服务应该正常运行的时间。亚马逊、谷歌和微软都把它们的SLA设定为99.9%以上,通常会讨论系统可用性几个9,9越多代表可用性越高。

在2023年11月12日下午,阿里云出现严重故障,全线产品受影响,后续官方确认故障原因与某个底层服务组件有关,官方通知2.5小时恢复正常。对比图表中的数据,我们可以看到阿里云的可用性达到99.9%。

阿里云发布最新服务等级协议SLA,多实例可用性升为99.995%-阿里云开发者社区 (aliyun.com)

常见性能指标

图表中展示了我们常见的性能指标,在实际工作中常用QPS、TPS来表示系统的性能

Untitled

估算QPS和存储量

请注意,下面的数字是针对这个练习而设置的,并非推特的真实数据。
假设:

  • 推特有3亿月活用户。
  • 50%的用户每天都使用推特。
  • 用户平均每天发两条推文。
  • 10%的推文包含多媒体数据。
  • 数据要存储5年。

以下为根据上面的假设而估算出来的一些数据。
(1)估算QPS(每秒查询量)。

  • 每日活跃用户(DAU)=300,000,000×50%=150,000,000
  • 推文QPS=150,000,000×2÷24小时÷3600秒≈3500
  • 峰值QPS=2×推文QPS≈7000

(2)这里仅估算多媒体数据的存储量。

  • 平均推文大小。
    • tweet_id:64字节。
    • 文本:140字节。
    • 多媒体文件:1MB。
  • 多媒体数据存储量=150,000,000×2×10%×1MB=30TB/天
  • 5年的多媒体数据存储量=30TB×365×5≈55PB

《搞定系统设》

如果觉得我的文章对您有用,赏我一包辣条吧!您的支持将鼓励我继续创作!也可以加我微信一起交流学习,折腾点有意思事情。