我是Amazon RDS客户,并且每天都会遇到亚马逊RDS写入延迟峰值,大致相当于备份窗口。我还会在快照结束时看到尖峰(例如:运行快照需要1小时,在最后5分钟内,写入延迟峰值)。我正在运行多AZ m1.large部署。
Stack上是否有人可以解释Amazon RDS备份实际的工作方式?我已经阅读了亚马逊RDS文档,据我所知,亚马逊RDS的行为并不符合规范。具体来说,这些备份/快照操作应该是我的副本,因此不会导致任何停机/性能损失,或者我认为。
我可以将我的问题提炼成六个问题:
奖金问题:您在哪里以及如何托管您的mysql数据库?
我可以说除了这些每日写入延迟问题外,我一直对RDS感到满意。我喜欢内置的数据库监控,设置和开始都相当简单。
谢谢!
答案 0 :(得分:74)
除了我们管理的一些机器上的MySQL之外,我们还运行了几个RDS实例。我不能具体评论,因为我不是亚马逊的工程师,但我学到的一些东西可以解释你所看到的:
虽然亚马逊没有100%分享后端细节,但我们强烈怀疑他们正在使用他们的EBS系统来支持RDS数据库。
本文有助于解释EBS限制和快照功能http://blog.rightscale.com/2008/08/20/amazon-ebs-explained/同样,虽然它不明确,但亚马逊使用此基础架构提供RDS服务是有意义的。
通常,与快照相比,MySQL备份涉及使用mysqldump之类的工具来创建SQL语句文件,然后重现数据库。不需要冻结数据库来执行此操作。使用EBS后端,最佳做法是在快照时冻结数据库(暂停所有事务)以避免数据损坏。
您在备份窗口末尾看到的峰值。如果在副本快照期间亚马逊暂停复制,则副本将需要在快照完成时“赶上”事务。这会导致延迟峰值。
跨多区域部署的复制本质上比单个AZ部署慢。为更好的冗余而付出的代价。
答案 1 :(得分:4)
亚马逊透露了他们在多可用区部署中使用的基本架构。这可能有助于人们做出决定
https://aws.amazon.com/blogs/database/amazon-rds-under-the-hood-multi-az/