AWSは、オープンソースデータベースホスティングのナンバーワンのクラウドプロバイダーであり、MySQL展開の頼れるクラウドです。組織がクラウドへの移行を続けるにつれ、ユーザーとクラウドインフラストラクチャ間の距離が長くなると、高遅延、低スループット、レプリケーションの遅延などのパフォーマンスの問題に対処することが重要になります。多くのAWSユーザーはデフォルトでマネージドデータベースソリューションであるAmazonRDSを使用していますが、高度なカスタマイズオプションと無制限のEC2インスタンスタイプのサポートを通じて、AWSでのMySQLのパフォーマンスを向上させることができる代替手段があります。 ScaleGridは、AWSでMySQLをホストするための魅力的な代替手段を提供します。これにより、パフォーマンスが向上し、制御が向上し、クラウドベンダーロックインがなく、AmazonRDSと同じ価格になります。この投稿では、MySQLAmazonRDSとAWSHighPerformanceインスタンスのScaleGridでのMySQLホスティングのパフォーマンスを比較します。
TLDR
ScaleGridのMySQLonAWSハイパフォーマンスデプロイメントは、Amazon RDS for MySQLの半分のレイテンシで2倍から3倍のスループットを提供でき、1インチに比べて2つの読み取りレプリカがあるという追加の利点があります。 RDS。
MySQLonAWSパフォーマンステスト
ScaleGrid | Amazon RDS | |
インスタンスタイプ | AWS High Performance XLarge(以下のシステムの詳細を参照) | DBインスタンスr4.xlarge(マルチAZ) |
展開タイプ | 3ノードマスタースレーブセットと準同期レプリケーション | 1つのリードレプリカを使用したマルチAZデプロイメント |
SSDディスク | ローカルSSDと汎用– 2TB | 汎用– 2TB |
月額費用(USD) | $ 1,798 | $ 1,789 |
Amazon RDS費用 | 価格 | 数量 | 合計 | メモ |
マルチAZ | ||||
DBインスタンス(hr) | $ 0.48 | 730 | $ 350.40 | db.r4.xlarge |
DBインスタンス(hr) | $ 0.48 | 730 | $ 350.40 | db.r4.xlarge |
ストレージ(GB) | $ 0.115 | 2000 | $ 230.00 | 汎用– 2TB(シングルAZ) |
レプリカを読む | ||||
DBインスタンス(hr) | $ 0.48 | 730 | $ 350.40 | db.r4.xlarge(Single-AZ) |
ストレージ(GB) | $ 0.115 | 2000 | $ 230.00 | 汎用– 2TB(シングルAZ) |
その他の費用 | ||||
バックアップストレージ(GB) | $ 0.095 | 1000 | $ 95.00 | DBストレージを最大100%解放 |
データ転送(インターネットへの送信) | $ 0.09 | 0 | $ 0.00 | 最大1GB/月まで無料 |
データ転送(リージョンへ) | $ 0.01 | 2000 | $ 20.00 | US East(N. Virginia) |
サポート | $ 162.62 | 1 | $ 162.62 | 月額費用の10% |
合計 | $ 1,788.82 |
上記の表からわかるように、MySQL RDSの価格は、ScaleGridの完全に管理された包括的なMySQLホスティングソリューションの10ドル以内です。
ScaleGridの高性能レプリカセットとは何ですか?
AWS HighPerformanceレプリカセット上のScaleGridMySQLは、ローカルSSDとEBSディスクのハイブリッドを使用して、高性能と高信頼性の両方を実現します。一般的な構成は、3ノードのレプリカセットを使用して展開されます。
- マスターとスレーブ-1はローカルSSDディスクを使用します。
- Slave-2はEBSディスクを使用します(汎用またはプロビジョンドIOPSディスクの場合があります)。
これはどういう意味ですか?マスターとスレーブ1はローカルSSDで実行されているため、AWSマシンから可能な限り最高のディスクパフォーマンスを得ることができます。ネットワークベースのEBSはもう必要ありません。非常に高速なローカルSSDだけです。プライマリへの読み取りと書き込み、およびSlave-1からの読み取りでもSSD速度で動作します。 Slave-2はEBSデータディスクを使用し、クラスターに必要なIOPSの量を構成できます。この構成により、ローカルSSDディスクを紛失した場合でも、データの完全な安全性が提供されます。
ScaleGridのMySQLAWS High Performance XLargeレプリカセットは、マスターとスレーブ1にローカルSSDを備えたi3.xlarge(30.5 GB RAM)インスタンス、およびi3.2xlarge(61 GB)インスタンスを使用しますRAM)Slave-2のインスタンス。
MySQL構成
同様のMySQL構成がScaleGridとRDSの両方のデプロイで使用されます:
構成 | 値 |
バージョン | 5.7.25コミュニティエディション |
innodb_buffer_pool_size | 25G |
innodb_log_file_size | 1G |
innodb_flush_log_at_trx_commit | 1 |
sync_binlog | 1 |
innodb_io_capacity | 3000 |
innodb_io_capacity_max | 6000 |
slave_parallel_workers | 30 |
slave_parallel_type | LOGICAL_CLOCK |
MySQLパフォーマンスベンチマークの構成
構成 | 詳細b> |
ツール | Sysbenchバージョン1.0.17 |
ホスト | 1r4.xlargeはマスターMySQLと同じAWSデータセンターにあります |
#テーブル | 100 |
#テーブルあたりの行数 | 5,000,000 |
ワークロード生成スクリプト | oltp_read_write.lua |
MySQLパフォーマンステストのシナリオと結果
すべてのMySQL AWSワークロードタイプに有益な結果を確実に提供するために、テストを次の3つのシナリオに分割し、読み取り/書き込みワークロードの強度に基づいて評価できるようにしました。
- 読み取り中心のワークロード: 80%の読み取りと20%の書き込み
- バランスの取れたワークロード: 50%の読み取りと50%の書き込み
- 書き込みが集中するワークロード: 20%の読み取りと80%の書き込み
各シナリオは、50から400の範囲のさまざまな数のsysbenchクライアントスレッドで実行され、各テストは10分間実行されます。 1秒あたりのクエリ数(QPS)と95パーセンタイル遅延の観点からスループットを測定し、スレーブの最大レプリケーションラグが30秒を超えないようにします。 ScaleGridデプロイメントの一部のテストでは、MySQL構成binlog_group_commit_sync_delayが調整され、スレーブレプリケーションの遅延が30秒を超えないようになっています。この手法は「マスターの速度を落とし、スレーブの速度を上げる」と呼ばれ、J-FGagneのブログで説明されています。
同じコストでAmazonRDSよりも#MySQLAWSのパフォーマンスを2倍向上させる方法クリックしてツイートシナリオ-1:読み取りが80%、書き込みが20%の読み取り集約型ワークロード
読み取り中心のワークロードテストからわかるように、AWS上のScaleGrid高性能MySQLインスタンスは、50から最大で約27,800QPSを一貫して処理できます。 400スレッド。これは、MySQL RDSのパフォーマンスよりもほぼ200%向上しており、同じ範囲のスレッドで平均9,411QPSしかありません。
ScaleGridは、MySQL AWSパフォーマンステスト全体を通じて平均で53%低いレイテンシーを維持します。 Amazon RDSとScaleGridの両方のレイテンシは、スレッドの数が増えるにつれて着実に増加します。ScaleGridは400スレッドで383ミリ秒で最大になりますが、AmazonRDSは同じレベルで831ミリ秒です。
シナリオ-2:読み取りが50%、書き込みが50%のバランスの取れたワークロード
バランスの取れたワークロードパフォーマンステストでは、AWSでのScaleGridのMySQL High Performanceデプロイメントは、50〜400のスレッドで平均20,605QPSで再び優れています。AmazonRDS同じスレッド数で平均8,296しかなく、ScaleGridで148%の改善が見られました。
ScaleGridとAmazonRDSの両方のレイテンシーは、上記の読み取り中心のテストと比較して、バランスの取れたワークロードテストで大幅に減少しました。バランスの取れたワークロードテストでは、Amazon RDSの平均レイテンシは258ミリ秒でしたが、ScaleGridの平均レイテンシはわずか125ミリ秒で、Amazon RDSのMySQLよりもレイテンシが52%以上短縮されました。
シナリオ-3:読み取りが20%、書き込みが80%の書き込み集約型ワークロード
最後の書き込み集約型のMySQLAWSワークロードシナリオでは、ScaleGridは50〜400スレッドの範囲で平均17,007QPSの大幅に高いスループットパフォーマンスを達成しました。これは、同じスレッド数で7,638QPSしか達成しなかったAmazonRDSよりも123%向上しています。
95パーセンタイルのレイテンシーテストでも、50〜400スレッドで平均114msのScaleGridのレイテンシーが大幅に低下しました。 Amazon RDSは、レイテンシーテストで平均247ミリ秒を達成し、Amazon RDSを介してAWSサービスにScaleGridの高性能MySQLをデプロイすると、レイテンシーが平均54%削減されました。
分析
テスト結果からわかるように、読み取りを多用するワークロードは、方法に関係なく、バランスの取れたワークロードと書き込みを多用するワークロードよりもスループットとレイテンシーの両方が高くなりました。 MySQLはAWSにデプロイされました:
MySQLonAWSスループットパフォーマンステストの平均> | ScaleGrid | Amazon RDS | ScaleGridの改善 |
読み取り集約型スループット | 27,795 | 9,411 | 195.4% |
バランスワークロードスループット | 20,605 | 8,296 | 148.4% |
書き込み集約型スループット | 17,007 | 7,638 | 122.7% |
MySQLonAWSレイテンシーパフォーマンステストの平均> | ScaleGrid | Amazon RDS | ScaleGridの改善 |
読み取りが集中するレイテンシ | 206ms | 439ms | -53.0% |
バランスの取れたワークロードレイテンシ | 125ms | 258ms | -51.6% |
書き込みが集中するレイテンシ | 114ms | 247ms | -53.8% |
結果の説明
- AWS展開でのScaleGridMySQLは、RDS展開と比較して読み取り中心のワークロードに対して3倍近く優れたスループットを提供したことがわかります。
- 書き込み負荷が増加すると、絶対スループットは低下しましたが、ScaleGridは2.5倍近く高いスループットパフォーマンスを提供しました。
- 書き込みが集中するワークロードの場合、ScaleGridデプロイメントでEBSスレーブのレプリケーションラグが発生し始めたことがわかりました。私たちの目的は、実行時にスレーブレプリケーションの遅延を30秒以内に保つことであったため、binlog_group_commit_sync_delayを導入して、スレーブがより優れた並列実行を実現できるようにしました。これにより遅延が制御され、ScaleGrid展開の絶対スループットが低下しましたが、RDS展開と比較して2.2倍高いスループットを確認できました。
- 読み取りと書き込みが集中し、バランスの取れたワークロードシナリオのすべてで、ScaleGridはRDSと比較して0.5分の1のレイテンシ特性を提供しました。
ScaleGridの「ハイパフォーマンス」デプロイメントは、RDSの半分のレイテンシで2倍から3倍のスループットを提供でき、さらに2つのリードレプリカがあるという利点があります。 RDSで1。 MySQL用AmazonRDSに対するScaleGridのMySQLホスティングの利点の詳細については、MySQLプロバイダーの比較ページを確認するか、フルマネージドDBaaSプラットフォームを探索するための30日間の無料トライアルを開始してください。