トラフィックが急増しているサイトを運営しています。そのため、この場合、自動スケーリングソリューションは非常に有益です。現在、Webサーバーは水平方向に自動スケーリングできますが、ボトルネックはMySQLサーバーにあります。
助言がありますか?前もって感謝します
実際には、より簡単な解決策は、スタックにMemcachedを追加して、DBの負荷を節約することです。これにより、負荷を大幅に節約でき、サーバーをすばやく起動する(難易度が低い)問題を解決してから、MySQLの高速同期(難易度がはるかに高い)を計算するよりもはるかに簡単です。
http://toblender.com/?s=memcached
書き込みが多すぎるという問題を解決するための最も一般的な修正は、サーバーにメモリを追加する(より大きなワーキングセットをRAMに保持できる)、より高速なディスクにDBを配置する(SSDは優れたソリューションですが、コストがかかる)、またはシャーディングです。 (これは、追加のサーバーと複雑さで高価です)。
DBの書き込み負荷を軽減する別の方法は、頻繁に変化するデータを処理するためにインメモリデータストア(Redisなど)を組み込み、必要に応じて定期的にメインDBに変更を書き戻すことです。
スタートポロジ の使用を検討する必要があります
これが私が提案していることです
このようにトポロジを準備します
ステップ01:これらの一般的なオプションを使用して5つのRSSをセットアップします
[mysqld]
skip-innodb
key_buffer_size=1G
これにより、すべてのテーブルがMyISAMストレージエンジンとしてロードされて作成されます。
ステップ02:セットアップDMおよびすべてのRSサーバー
tblname ROW_FORMAT=Fixed;
を実行しますtblname ENGINE=BLACKHOLE;
を実行しますステップ03:DMから5つのRSSすべてへのレプリケーションのセットアップ
ステップ04:WMからDMへのレプリケーションのセットアップ
セットアップの終了
読み取り/書き込みメカニズムの仕組みは次のとおりです
さて、ここに問題があります...
service mysql stop
を実行しますservice mysql stop
を実行しますservice mysql stop
を実行しますRSS#5を使用して、新しいサーバーを何度も起動できます
ちなみに、WMまたはDMはInnoDBまたはBLACKHOLEストレージエンジンをサポートしていないため、XEROUNDを使用しないでください。
これらのアイデアがお役に立てば幸いです。
これはあなたが管理するラックにありますか、それともクラウドにありますか? 12GBは、使用可能なディスクのサイズに比べて非常に小さいデータベースです。小さなSLCSSDのRAID1またはRAID10アレイに配置すると、書き込みレイテンシーがなくなります。
Intel311シリーズ20GBSLC SSD (各120ドル)は見事に仕事をします。
データベースが大きい場合は、データベースをZFS上のiSCSIターゲットに移動することで、同様に素晴らしい結果を得ることができますSANサーバー(Nexenta、OpenIndiana、FreeNASなどを使用して商品サーバーハードウェア上に構築) ZILライトキャッシュ用に類似のSSDのミラーを設定する最も異常な状況を除いて、ギガビットイーサネットはデータベースiSCSIトラフィックを移動するのに十分です。
Innodbを使用する場合は、 Mysql multi-masters 管理対象 Galera を検討する必要があります。これにより、mysqlマルチマスターのセットアップが簡単になり、「セミ」自動スケーリングが簡単になります。
これがあなたまたはあなたの会社が作成しているアプリケーションである場合は、アプリケーションのシャード(パーティション化)設計への移行を検討できます。ただし、シャーディングは複雑になる可能性があります。ここに リンク があります。
私は、割り当てられた適切なメモリなどのように、mysql構成ファイルを「調整」したと想定しています。