MySQLレプリケーションのパフォーマンス
2台のマシン間でのMySQL 5.5レプリケーションのパフォーマンスに重大な問題があります。ほとんどがステートメントベースのレプリケーションを備えたmyISAMテーブルです。バイナリログとmysqlデータディレクトリは両方とも同じFusion ioDriveにあります。 この問題は、レプリケーションを約1時間停止する必要がある最近の大きな問題でした。3時間。他の負荷なしで再び追いつくのに約10時間かかりました。 レプリケーションのパフォーマンスを向上させるにはどうすればよいですか?マシンBは、1つのmySQLスレッドだけがデータを書き込んでいたため、基本的にはアイドル状態です(ほとんど、IO、16個のうち最大2個のコア、多くの空きRAM)。ここに私が持っていたいくつかのアイデアがあります: 行ベースのレプリケーションに切り替えます。テストでは、これによりパフォーマンスが10〜20%向上しました。 マルチスレッドレプリケーションを使用してmySQL 5.6にアップグレードします。データを簡単に個別のデータベースに分割することができ、ベンチマークはこれが役立つことを示しているように見えますが、コードは生産準備が整っていないようです。 レプリケーションの高速化に役立ついくつかの構成変数 主な問題は、3時間休止した後、10時間かかると、レプリケーションは10時間で13時間のデータを書き込むか、または入ってくるデータの速度の130%で書き込むことができることを意味します。近い将来、マスターマシンで少なくとも2回の書き込みが行われるため、レプリケーションパフォーマンスを改善する方法が切実に必要です。 マシンA: 主人 24GBラム 1.2TB Fusion ioDrive2 2x E5620 ギガビット相互接続 my.cnf: [mysqld] server-id=71 datadir=/data_fio/mysqldata socket=/var/lib/mysql/mysql.sock tmpdir=/data_fio/mysqltmp log-error = /data/logs/mysql/error.log log-slow-queries = /data/logs/mysql/stats03-slowquery.log long_query_time = 2 port=3306 log-bin=/data_fio/mysqlbinlog/mysql-bin.log binlog-format=STATEMENT replicate-ignore-db=mysql log-slave-updates = true # Performance Tuning max_allowed_packet=16M max_connections=500 table_open_cache = 2048 max_connect_errors=1000 …