私はmysql
マスター/スレーブ構成をセットアップしています。ここで、slave
は非常に弱いサーバーに配置されています。
私が正しく理解している場合、スレーブは更新/挿入でのみ機能するため、slave
のmy.cnf
で調整して、最高のパフォーマンスと可能な限り最小の遅延を確保できる最も重要な構成パラメーターは何ですか?
パフォーマンスに関する懸念があり、サーバーがクラッシュした場合にデータの小さなチャンク(通常は1秒)が失われることを気にしない場合は、次の変数を変更します。
innodb_buffer_pool_size
-合計RAMの80%を使用してみてください(この場合は3.2Gb)innodb_log_file_size
-ここで適切な値を選択して、スレーブのI/Oを最適化しますinnodb_flush_log_at_trx_commit
-2または0に設定しますinnodb_doublewrite
-innodb doublewriteを無効にしますinnodb_flush_method
-フラッシュ方法をO_DIRECTに変更しますsync_binlog
-スレーブでバイナリログを有効にしている場合は、sync_binlogを無効にしますsync_master_info
sync_relay_log
および sync_relay_log_info
良いオプションはこれを読むことです 記事 、それはどのようにinnodbを最適化するかについての一般的な概要であり、それはあなたのマスターとあなたのスレーブに働きます。
MySQL 5.6の機能を実装するperconaサーバーへのアップグレードを計画している場合は、スレーブsqlスレッドの数を増やすことをお勧めします slave-parallel-workers
InnoDB環境用に最適化する必要があるだけです。 innodb_buffer_pool_size
は依然としてパフォーマンスの鍵です。
また、スレーブサーバーはマスターサーバーよりも弱いため、レプリケーションラグに対処する必要があるかもしれません。 (つまり、マスターに書き込みますが、スレーブからデータをすぐに読み取ることはできません)