2016-03-22 36 views
0

我在amazone有一個帳戶。我的主MySql是一個大的實例。並且我還有其他2 小型實例作爲複製服務器。層次結構是Primary - > slave 1-> slave 2。問題在於從1和從2顯示CPU利用率很高。我們無法找出確切的原因。奴隸1充當主要的奴隸,同時充當奴隸2的主人。我們搜查了很多東西,但我們仍然被視爲盲人。 在此先感謝您的幫助。Mysql副本服務器的CPU利用率在EC2中變得很高

+1

mysql複製方法是重新運行從服務器內的CRUD。它不是「直接數據同步」,可以想象你在主服務器中有很高的CRUD活動。 – mootmoot

+0

感謝我的朋友,我有另外一個疑問,讀取操作是否會在從服務器中重新運行? –

回答

1

作爲一般規則,當使用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中可以監控副本的滯後。

+0

謝謝邁克爾。我希望我們的問題是我們的奴隸比師父配置更少。我也有一個疑問。我們怎麼能發現我們的slave是基於語句的複製或基於行的複製? –