用于mysql复制的ec2实例之间的带宽异常

时间:2018-04-14 03:04:06

标签: mysql amazon-web-services amazon-ec2

我在2个AWS Instance:m4.xlarge之间使用MySQL复制。 版本5.6.35

有时候我的复制延迟时间很长,很多都增加到秒_behind_master xx,000秒。我发现slave上的io_thread无法在master db上捕获bin_logs大小。

此时,带宽&主机和主机之间的字节传输slave非常低(以字节为单位)

但是当我将实例类型的Slave从m4.xlarge更改为t2.xlarge并向后。主从设备之间的带宽立即增加(最高400kb / s)。保持主数据库,不接触或更改它。复制延迟很快就消失了。这很奇怪。 (iftop检查带宽)

你能告诉我这有什么问题吗?当我们更改实例类型时会发生什么?我们如何发现根本原因?

非常感谢。

2 个答案:

答案 0 :(得分:1)

我检查过&监控问题来自我们的Slave DB耗尽Burst Balance。 (https://aws.amazon.com/blogs/aws/new-burst-balance-metric-for-ec2s-general-purpose-ssd-gp2-volumes/)。

由于我们的从属数据库只有20GB的小存储空间,所以它只有默认的100 IOPS。

IOPS = Volume size (in GB) * 3
Minimum for gp2 is 100 IOPS
Maximum for gp2 is 3000 IOPS

我将存储空间增加到50GB以获得150 IOPS,现在io_thread运行得更好。

停止/启动实例也会将突发平衡重置为100%,但这只是一个快速提示。应在带宽旁边检查此度量标准,以确定EC2实例之间的高延迟。

答案 1 :(得分:0)

似乎有些人遇到了同样的问题[1] [2]

您是否尝试关闭sync_binlog? (sync_binlog = 0)