2011-03-09 100 views
82

我是亚马逊RDS客户,每天都遇到亚马逊RDS写入延迟峰值,大致对应于备份窗口。我还会在快照结尾处看到尖峰(例如:运行快照需要appx 1小时,并在最后5分钟内写入延迟尖峰)。我正在运行多可用区m1.large部署。Amazon RDS备份/快照如何实际工作?

Stack上有没有人可以解释Amazon RDS备份如何实际上是工作?我已阅读Amazon RDS文档,据我所知,Amazon RDS不符合规范。特别是,这些备份/快照操作应该打到我的副本,因此不会造成任何停机/性能下降,或者我想。

我可以提炼出我的问题分为六个问题:

  • 什么是快照和备份过程中技术上发生的事情,以及他们如何不同? (如果你回答了这个问题,请告诉我你是否可以凭经验确认你的答案,或只是简单地引用我的文档)。
  • 在多可用区部署的备份窗口期间是否会出现写入延迟峰值?
  • 是写入延迟穗在快照上多AZ部署年底预期?
  • 如果我不是多可用区,我的写入延迟尖峰会更高吗?
  • 架构上,我将能够避免这些写入延迟高峰,如果我推出两个m1.large EC2实例上运行我自己的数据库?
  • 是否有我可以使用,将避免这些写入延迟高峰,同时还举办我的RDS DB,或者亚马逊的有效怜悯我是任何配置?

奖金问题:在哪里以及你如何托管您的mysql数据库?

我可以说,我已普遍乐意与RDS除了这些日常的写入延迟问题。我喜欢内置的数据库监控,安装起来非常简单。

谢谢!

amazon RDS write latency

回答

70

我们也运行几个RDS情况下,除了到MySQL对我们管理自己的一些机器。我无法作出具体评论,因为我不是一个亚马逊工程师,但几件事情我已经学会这或许可以解释你所看到的:

  • 虽然亚马逊没有共享后端详细信息100%我们强烈怀疑他们正在使用他们的EBS系统来备份RDS数据库。

  • 本文有助于解释EBS限制和快照功能http://blog.rightscale.com/2008/08/20/amazon-ebs-explained/同样,虽然它并不明确,但亚马逊使用此基础结构来提供RDS服务是有意义的。

  • 通常情况下,一个MySQL备份,对比快照,包括使用例如mysqldump的工具来创建SQL语句的话,这将重现数据库的文件。数据库不需要被冻结来做到这一点。对于EBS后端,最佳做法是在快照时冻结数据库(暂停所有事务)以避免数据损坏。

  • 您在备份窗口末尾看到的尖峰。如果在复制副本的快照期间由Amazon暂停复制,则复制副本随后需要在快照完成时“赶上”事务。这会导致延迟峰值。

  • 跨多可用区域部署的复制本质上比单个可穿戴式区域部署要慢。你付出的代价更好的冗余。

+1

很好的回答,+1。 – ceejayoz 2011-04-08 17:18:25

+7

我可以确认Amazon RDS正在使用EBS作为其RDS数据库的后备存储。 RDS Cloudwatch中的Read Latency和Write Latency图正有效地描述了EBS实例。谢谢你的回答,这很有道理。 – esilver 2011-04-08 18:52:41

+1

亚马逊在他们的停机验尸后在这里分享更多细节http://aws.amazon.com/message/65648/ – Joshua 2011-04-29 19:32:35