当前位置:首页 > 科技  > 知识百科

用Elastic Block Store(EBS)改善性能和数据可用性 译文

来源: 责编: 时间:2023-08-07 16:30:18 167观看
导读 如今,许多数据库即服务(DBaaS)解决方案将计算层和存储层分开来,比如包括Amazon Aurora和Google BigQuery。由于数据存储和数据复制可以由现有服务来处理,DBaaS无需担心这种复杂性

如今,许多数据库即服务(DBaaS)解决方案将计算层和存储层分开来,比如包括Amazon Aurora和Google BigQuery。由于数据存储和数据复制可以由现有服务来处理,DBaaS无需担心这种复杂性,这种解决方案很有吸引力。然而,这种设计的性能有时可能不如传统方式:使用本地磁盘作为存储。0HQ28资讯网——每日最新资讯28at.com

本文将介绍如何认真选择弹性块存储(EBS)类型,辅以巧妙的优化,在EBS上部署DBaaS可以获得比在本地磁盘上更好的性能。0HQ28资讯网——每日最新资讯28at.com

为什么要考虑EBS?0HQ28资讯网——每日最新资讯28at.com

为了解释我们使用EBS的动机,先简单介绍一下TiDB。TiDB是一种与MySQL兼容的分布式数据库。TiDB Server是处理SQL请求的计算节点。Placement Driver(PD)则是TiDB的大脑,负责配置负载均衡,并提供元数据服务。TiKV是一种面向行的键值存储系统,处理事务查询。TiFlash是处理分析查询的列存储扩展。本文主要介绍TiKV。0HQ28资讯网——每日最新资讯28at.com

 0HQ28资讯网——每日最新资讯28at.com

图10HQ28资讯网——每日最新资讯28at.com

TiKV提供分布式键值服务。首先它将数据拆分成几个Region,这是用于复制和负载均衡的最小数据单元。为了实现高可用性(HA),每个Region被复制三次,然后分布在不同的TiKV节点中。一个Region的副本构成一个Raft组。TiDB可以接受这种情形:失去一个节点,从而在一些Region中失去一个副本。但是,同时失去两个副本会导致问题,因为Raft组的大多数成员都失去了。因此Region不可用,无法再访问其数据。需要人为干预来解决这类问题。0HQ28资讯网——每日最新资讯28at.com

 0HQ28资讯网——每日最新资讯28at.com

图20HQ28资讯网——每日最新资讯28at.com

在部署TiDB Cloud时,我们有放置规则,保证一个Region的副本会分布在多个可用区(AZ)。失去一个可用区(AZ)不会对TiDB Cloud产生巨大影响。然而,如果出现AZ + 1故障(即一个可用区和另一个可用区中的至少一个节点同时出现故障),该Region将变得不可用。我们在生产环境中遇到过这样的故障,花了好大的精力才让TiDB集群恢复正常。为了避免再次遭遇这种痛苦的经历,EBS进入了我们的视线。0HQ28资讯网——每日最新资讯28at.com

AWS Elastic Block Store(EBS)是AWS提供的一种块存储服务,可以附加到EC2实例上。然而,EBS上的数据独立于EC2实例,因此当EC2实例出现故障时,数据持续存在。当EC2实例出现故障时,可以使用Kubernetes,将EBS自动重新挂载到正常工作的EC2实例。此外,EBS卷是为关键任务系统设计的,因此它们可以在AZ内复制。这意味着EBS不太可能出故障,因此我们就放心了。0HQ28资讯网——每日最新资讯28at.com

选择合适的EBS卷类型0HQ28资讯网——每日最新资讯28at.com

基于SSD的EBS卷通常有四种类型:gp2、gp3、io1和io2。(我们在设计和实现TiDBCloud时,io2 Block Express还处于预览模式,所以我们没有考虑它。)下表总结了这些卷类型的特点。0HQ28资讯网——每日最新资讯28at.com

卷类型0HQ28资讯网——每日最新资讯28at.com

耐久性0HQ28资讯网——每日最新资讯28at.com

(%)0HQ28资讯网——每日最新资讯28at.com

带宽0HQ28资讯网——每日最新资讯28at.com

(MB/s)0HQ28资讯网——每日最新资讯28at.com

IOPS0HQ28资讯网——每日最新资讯28at.com

(每GB)0HQ28资讯网——每日最新资讯28at.com

成本0HQ28资讯网——每日最新资讯28at.com

说明0HQ28资讯网——每日最新资讯28at.com

gp20HQ28资讯网——每日最新资讯28at.com

99.8-99.90HQ28资讯网——每日最新资讯28at.com

2500HQ28资讯网——每日最新资讯28at.com

3,突发式0HQ28资讯网——每日最新资讯28at.com

0HQ28资讯网——每日最新资讯28at.com

通用卷0HQ28资讯网——每日最新资讯28at.com

gp30HQ28资讯网——每日最新资讯28at.com

99.8-99.90HQ28资讯网——每日最新资讯28at.com

125-10000HQ28资讯网——每日最新资讯28at.com

3000-160000HQ28资讯网——每日最新资讯28at.com

0HQ28资讯网——每日最新资讯28at.com

通用卷,有灵活的带宽0HQ28资讯网——每日最新资讯28at.com

io10HQ28资讯网——每日最新资讯28at.com

99.8-99.90HQ28资讯网——每日最新资讯28at.com

多达10000HQ28资讯网——每日最新资讯28at.com

多达640000HQ28资讯网——每日最新资讯28at.com

0HQ28资讯网——每日最新资讯28at.com

高IOPS0HQ28资讯网——每日最新资讯28at.com

io20HQ28资讯网——每日最新资讯28at.com

99.9990HQ28资讯网——每日最新资讯28at.com

多达10000HQ28资讯网——每日最新资讯28at.com

多达640000HQ28资讯网——每日最新资讯28at.com

0HQ28资讯网——每日最新资讯28at.com

高IOPS,性能最佳0HQ28资讯网——每日最新资讯28at.com

这里可以进行对比。注意在下面图中,四种类型的EBS卷附加到了r5b实例,而本地磁盘上的一番测量是在i3实例上进行的。这是由于r5b实例只能使用EBS。我们使用i3作为相仿的替代选择。每个图显示了所有操作的平均延迟和第 99个百分位延迟。0HQ28资讯网——每日最新资讯28at.com

我们从读写延迟开始横向比较。第一个工作负载很简单。它有1000 IOPS,每个I/O为4 KB。以下两张图显示了平均延迟和第99个百分位延迟。0HQ28资讯网——每日最新资讯28at.com

 0HQ28资讯网——每日最新资讯28at.com

图30HQ28资讯网——每日最新资讯28at.com

只有一个线程的简单工作负载的写延迟。(数字越小越好)0HQ28资讯网——每日最新资讯28at.com

 0HQ28资讯网——每日最新资讯28at.com

图40HQ28资讯网——每日最新资讯28at.com

只有一个线程的简单工作负载的读延迟。(数字越小越好)0HQ28资讯网——每日最新资讯28at.com

我们使用类似的设置设计了类似的工作负载。这次我们使用8个线程为磁盘提供总共3000个IOPS,每个I/O仍然是4 KB。同样,我们概述了平均延迟和第99个百分比延迟,并绘制成以下两图。0HQ28资讯网——每日最新资讯28at.com

 0HQ28资讯网——每日最新资讯28at.com

图50HQ28资讯网——每日最新资讯28at.com

有八个线程的简单工作负载的写延迟。(数字越小越好)0HQ28资讯网——每日最新资讯28at.com

 0HQ28资讯网——每日最新资讯28at.com

图60HQ28资讯网——每日最新资讯28at.com

有八个线程的简单工作负载的读延迟。(数字越小越好)0HQ28资讯网——每日最新资讯28at.com

从前面两个实验来看,本地磁盘似乎更胜一筹。真是这样吗?这是另一个基准测试,显示的情况略有不同。我们设计了混合工作负载来模拟TiKV IO的使用:有小的顺序写入来模拟前台预写式日志(WAL)写入,还有大量的顺序写入来模拟压缩写入。回想一下,TiDB使用RocksDB作为存储引擎。RocksDB基于日志结构化合并树(LSM 树),它定期压缩最近写入的数据。我们也有小的随机读取来模拟前台读取。0HQ28资讯网——每日最新资讯28at.com

我们发现,当后台I/O变得更密集时,前台延迟增加,本地磁盘和EBS之间的延迟差距会变小,见下图。0HQ28资讯网——每日最新资讯28at.com

 0HQ28资讯网——每日最新资讯28at.com

图7. 一些综合工作负载的平均操作延迟。(数字越小越好)0HQ28资讯网——每日最新资讯28at.com

我们针对TiDB运行TPC-C工作负载(这是更全面的基准测试)后,EBS 和本地磁盘之间的性能差距变得更小了。下图显示了结果。使用的TiDB版本是v5.0.0。我们在EBS卷类型不一的r5b.2xlarge实例上或使用本地nvme磁盘的i3.2xlarge实例上部署了三个TiKV节点。TiDB 节点、Placement Driver(PD)和TPC-C客户端部署在c5.4xlarge实例上。我们在实验环境中使用了5000个仓库(大约350 GB数据),分别有50个、200个和800个客户端。结果显示在以下三个图中。第一个图显示了TPC-C工作负载中的每分钟事务数(TPMC)。第二个图显示了事务的平均延迟,以毫秒为单位。第三个图显示了第99个百分位延迟,以毫秒为单位。0HQ28资讯网——每日最新资讯28at.com

 0HQ28资讯网——每日最新资讯28at.com

图8. TPC-C工作负载中的每分钟事务(TPMC)。(数字越大越好)0HQ28资讯网——每日最新资讯28at.com

 0HQ28资讯网——每日最新资讯28at.com

图9. TPC-C 工作负载中的平均操作延迟(ms)。(数字越小越好)0HQ28资讯网——每日最新资讯28at.com

 0HQ28资讯网——每日最新资讯28at.com

图10. TPC-C 工作负载中的第99个百分位操作延迟(ms)。(数字越小越好)0HQ28资讯网——每日最新资讯28at.com

通常来说,我们可以看到使用EBS的实例可以达到与使用本地磁盘的实例相仿的性能,有时甚至更好。这是由于TiKV在这个工作负载中是CPU受限的,在我们尝试过的其他许多基准测试中也是如此。I/O性能不是瓶颈。由于带EBS的实例类型是r5b,它的CPU比带本地磁盘的实例类型i3更好,性能结果看起来相仿,甚至更好。0HQ28资讯网——每日最新资讯28at.com

此外,在第三个图中(TPC-C工作负载中的第99个百分位操作延迟),有800个线程时,EBS卷类型gp2的第99个百分位延迟飙升。这是由于就gp2而言,带宽达到了极限。0HQ28资讯网——每日最新资讯28at.com

最后,我们选择gp3作为EBS类型。EBS卷io2并不在我们的考虑范围之内,因为在当初设计和实现TiDB Cloud时,r5b实例无法使用它。此外,当时io2 block express仍处于预览模式。EBS卷io1的延迟整体上与gp2相当,io1提供了更高的带宽IOPS限制。然而,io1有基于预置IOPS的额外成本。EBS卷gp2的带宽和IOPS有限,而且无法配置。这给TiDB带来了额外的限制。因而,我们选择了gp3。0HQ28资讯网——每日最新资讯28at.com

原文标题:Improve Performance and Data Availability with Elastic Block Store (EBS),作者:Bokang Zhang0HQ28资讯网——每日最新资讯28at.com

链接:0HQ28资讯网——每日最新资讯28at.com

https://www.datasciencecentral.com/improve-performance-and-data-availability-with-elastic-block-store-ebs/0HQ28资讯网——每日最新资讯28at.com

 0HQ28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-119-2333-0.html用Elastic Block Store(EBS)改善性能和数据可用性 译文

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: Kafka 万亿级消息实践之资源组流量掉零故障排查分析

下一篇: 炼丹速度×7!你的Mac电脑也能在PyTorch训练中用GPU加速了

标签:
  • 热门焦点
  • 7月安卓手机好评榜:三星S23Ultra好评率第一

    7月安卓手机好评榜:三星S23Ultra好评率第一

    性能榜和性价比榜之后,我们来看最后的安卓手机好评榜,数据来源安兔兔评测,收集时间2023年7月1日至7月31日,仅限国内市场。第一名:三星Galaxy S23 Ultra好评率:95.71%在即将迎来新
  • 一年经验在二线城市面试后端的经验分享

    一年经验在二线城市面试后端的经验分享

    忠告这篇文章只适合2年内工作经验、甚至没有工作经验的朋友阅读。如果你是2年以上工作经验,请果断划走,对你没啥帮助~主人公这篇文章内容来自 「升职加薪」星球星友 的投稿,坐
  • 从 Pulsar Client 的原理到它的监控面板

    从 Pulsar Client 的原理到它的监控面板

    背景前段时间业务团队偶尔会碰到一些 Pulsar 使用的问题,比如消息阻塞不消费了、生产者消息发送缓慢等各种问题。虽然我们有个监控页面可以根据 topic 维度查看他的发送状态,
  • 如何通过Python线程池实现异步编程?

    如何通过Python线程池实现异步编程?

    线程池的概念和基本原理线程池是一种并发处理机制,它可以在程序启动时创建一组线程,并将它们置于等待任务的状态。当任务到达时,线程池中的某个线程会被唤醒并执行任务,执行完任
  • 微信语音大揭秘:为什么禁止转发?

    微信语音大揭秘:为什么禁止转发?

    大家好,我是你们的小米。今天,我要和大家聊一个有趣的话题:为什么微信语音不可以转发?这是一个我们经常在日常使用中遇到的问题,也是一个让很多人好奇的问题。让我们一起来揭开这
  • .NET 程序的 GDI 句柄泄露的再反思

    .NET 程序的 GDI 句柄泄露的再反思

    一、背景1. 讲故事上个月我写过一篇 如何洞察 C# 程序的 GDI 句柄泄露 文章,当时用的是 GDIView + WinDbg 把问题搞定,前者用来定位泄露资源,后者用来定位泄露代码,后面有朋友反
  • 自律,给不了Keep自由!

    自律,给不了Keep自由!

    来源 | 互联网品牌官作者 | 李大为编排 | 又耳 审核 | 谷晓辉自律能不能给用户自由暂时不好说,但大概率不能给Keep自由。近日,全球最大的在线健身平台Keep正式登陆港交所,努力
  • 亲历马斯克血洗Twitter,硅谷的苦日子在后头

    亲历马斯克血洗Twitter,硅谷的苦日子在后头

    文/刘哲铭  编辑/李薇  马斯克再次挥下裁员大刀。  美国时间11月14日,Twitter约4400名外包员工遭解雇,此次被解雇的员工的主要工作为内容审核等。此前,T
  • 北京:科技教育体验基地开始登记

    北京:科技教育体验基地开始登记

      北京“科技馆之城”科技教育体验基地登记和认证工作日前启动。首批北京科技教育体验基地拟于2023年全国科普日期间挂牌,后续还将开展常态化登记。  北京科技教育体验基
Top