RDS 多可用区瓶颈写入性能

Isr*_*eca 3 mysql amazon-web-services amazon-rds

我们在 sa-east-1 区域上使用了 RDS MySQL 5.6 实例 (db.m3.2xlarge),在写入密集型操作期间,我们看到(在 CloudWatch 上)我们的写入吞吐量和网络传输吞吐量上限为 60MB/s .

我们怀疑多可用区可能对这种行为负责,并出于测试目的将其关闭。我们做了同样的操作,现在注意到写入吞吐量不再被限制,网络传输吞吐量实际上为零。这强化了这种网络流量在多可用区设置上的主实例和故障转移实例之间的想法。

以下是 Cloudwatch 图表,显示了没有多可用区的操作和启用多可用区的操作之后的操作:

RDS 多可用区瓶颈写入性能

我们尝试将实例升级到具有最高网络性能的实例并配置了 IOP,但没有任何变化,当多可用区开启时,我们的写入速度始终限制在 60MB/s。

据我们了解,多可用区使用同步数据复制,但我们无法找到有关发生此复制的链路的带宽限制的任何信息。有没有人知道它以及如何避免这种限制?还是我们应该忍受它?

Mic*_*bot 6

我认为您没有看到复制服务本身的限制,但您的复制带宽似乎与实例上的 EBS 卷共享相同的传输,因此它限制了您的实例本身可用的以太网带宽(请记住,EBS 是网络附加存储)。

m3.2xlarge 上的网络连接是 1000 Mbit/s,相当于 125 MiB/s。

将该数字除以二,您将获得约 60 MB/s 的写入本地实例的 EBS 卷和另一个约 60 MB/s 的写入同步副本。

不幸的是,多可用区复制的实施细节并不是 AWS 公开解释的足够详细的内容,无法得出结论说这确实是解释,但如果它是正确的,这些数字与预测的数字非常接近。

m3 系列和 m4 系列实例具有相似的规格,但(显然)也有一些基本的设计差异,因此查看 m4.2xlarge 是否具有相同的行为可能会提供信息。


Isr*_*eca 0

好吧,我从未从任何地方得到过实际的解释,但经过大量测试后,似乎 m3.2x.large 实际上是“被窃听的”。我在博客里写了详细的解释。