我運行的服務需要能夠支持大約4000+ IOPS,並保持副本滯後< = 1秒才能正常工作。AWS RDS MySQL只讀副本滯後問題
我正在使用AWS RDS MySQL實例並擁有2個只讀副本。我的服務在複製副本上遇到了巨大的副本滯後高峯,因此我在一週內與AWS支持人員聯繫,試圖瞭解爲什麼我遇到了延遲問題 - 我配置了6000 IOPS,並且實例功能非常強大。他們給了我各種各樣的理由。
更改實例類型後,從5.5升級到MySQL 5.6以利用多線程,並且它們替換了底層硬件,但我仍然會隨機地看到顯着的副本滯後。
最終,我決定開始修改參數組,改變我的配置只讀副本的任何我能找到的參與複製過程,現在我最終還是經歷了1秒鐘的複製滯後。
這裏是我改變了設置和似乎是成功的它們的值(我複製了默認的MySQL 5.6 PARAM組和改變這些值應用更新paramater組只讀副本):
innodb_flush_log_at_trx_commit=0
sync_binlog=0
sync_master_info=0
sync_relay_log=0
sync_relay_log_info=0
請閱讀有關這些理解修改的影響:http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html
其他的事情,以確保你照顧:
Convert any MyISAM tables to InnoDB
Upgrade from MySQL < 5.6 to MySQL >= 5.6
Ensure that your provisioned IOPS are > the combined read/write IOPS you require
Ensure that your read replica instances are >= master instance
如果其他人有任何其他參數可以在只讀副本或主數據庫上修改以獲得最佳複製性能,我很想聽聽更多。
UPDATE 2014年7月8日
要採取的Mysql的優勢5.6多線程複製我設置:
slave_parallel_workers=5 (Set it to the number of read replica DBs you have running)
我發現這個在這個位置:
https://blogs.oracle.com/MySQL/entry/benchmarking_mysql_replication_with_multi
您能澄清一下「確保您的只讀副本實例> =主實例」 - 您的意思是根據實例類嗎? – greggles
是的,確保實例類至少是相同的,如果不是更大 –