sql >> データベース >  >> RDS >> Mysql

同じコストでAmazonRDSよりもMySQLAWSのパフォーマンスを2倍向上させる方法

    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パフォーマンスベンチマークの構成

    構成 詳細
    ツール Sysbenchバージョン1.0.17
    ホスト 1r4.xlargeはマスターMySQLと同じAWSデータセンターにあります
    #テーブル 100
    #テーブルあたりの行数 5,000,000
    ワークロード生成スクリプト oltp_read_write.lua

    MySQLパフォーマンステストのシナリオと結果

    すべてのMySQL AWSワークロードタイプに有益な結果を確実に提供するために、テストを次の3つのシナリオに分割し、読み取り/書き込みワークロードの強度に基づいて評価できるようにしました。

    1. 読み取り中心のワークロード: 80%の読み取りと20%の書き込み
    2. バランスの取れたワークロード: 50%の読み取りと50%の書き込み
    3. 書き込みが集中するワークロード: 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日間の無料トライアルを開始してください。


    1. SQLで平均を丸めるときに小数を取得するにはどうすればよいですか?

    2. MariaDBでのMAKETIME()のしくみ

    3. パラメータ値を使用してOracleストアドプロシージャの呼び出しをログに記録/トレースするにはどうすればよいですか?

    4. OracleDropグローバル一時テーブルを強制する