質問: 既存のMySQLマスタースレーブ(1-2)を組んで運用しているサービスがあるとします。 この構成に前日取得したSnapshotからつくったMySQLノードを新規にスレーブとして追加して(1-3)となる構成にしました。 しかし、スレーブを追加する作業中に何故かMasterのシステム負荷が一時的に上がりました。 スレーブを追加することでマスターのシステム負荷が高くなる理由は何故なのでしょうか?
回答: MySQLのバージョンが書かれていないため見当違いかもしれませんが、過去のバージョンにおいてMasterへSlaveが接続するたびに無駄なバイナリログスキャンが行われていたバグがあったようです。 > > MySQL 5.6シリーズの最初のバージョンである、MySQL 5.6.10にはこの処理に問題があった。なんと、スレーブが接続したときに、マスター上ではバイナリログを若い方から全てスキャンしていたのだ。スレーブが接続、あるいは再接続する度にバイナリログを全てスキャンしていたため、大変なI/Oの負荷があった。流石にこの問題は致命的だったので、その次のバージョンであるMySQL 5.6.11で修正された。 > > > 引用元:MySQLレプリケーションの運用が劇的変化!!GTIDについて仕組みから理解する 一般にデータベースのレプリケーションではバイナリログの同期作業が絶対に起こるので、一定の負荷上昇はやむを得ないと思います。 しかし明らかに異常な負荷がかかっていると思われる場合は、MySQLのバージョンを確認されるとよいのではないかと思います。