Mysql副本服务器的CPU利用率在EC2中变得很高

时间:2016-03-22 09:48:00

标签: mysql amazon-ec2 database-replication

我在amazone有一个帐户。我的主要MySql是大型实例。我有其他2个实例作为复制服务器。层次结构是主要 - >奴隶1->奴隶2。问题是有时从机1和从机2显示出高CPU利用率。我们找不到确切的原因。奴隶1充当了主要的奴隶,同时它充当了奴隶2的主人。我们搜索了很多,但我们仍然被视为盲目。 提前感谢所有帮助。

1 个答案:

答案 0 :(得分:2)

作为一般规则,当使用MySQL本机异步复制(这是RDS使用的)时,副本服务器需要与主或有时更大的一样大。副本从主服务器接收“复制事件”,其中可能包含修改数据的实际查询 - 插入,更新,删除但不选择 - 这是“基于语句的复制” - 或者可能接收添加的行的二进制映像删除或更改主服务器 - 这是“基于行的复制”。默认情况下,主服务器在逐个查询的基础上决定用于发送复制事件的格式(“混合”)。

在所有情况下,SELECT语句都不会发送到副本(当然除了INSERT ... SELECT),但它们确实需要足够的容量来处理来自主服务器的传入更改,以及SELECT您的应用程序直接针对副本运行的查询。

在RDS for MySQL 5.6及更高版本中,您可以将binlog_format设置为ROW以强制主服务器始终使用基于行的复制。这可能会改善您的性能,也可能不会 - 这取决于工作负载。您不能强制RDS仅使用“语句”模式,也不能强制使用。

http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.Concepts.MySQL.html

但是,通常,只要副本是资源少于主服务器的计算机,复制滞后的可能性就会增加。可以在Cloudwatch中监视副本的延迟。