Database Autonomy Service (DAS) は、本番トラフィック再現によるストレステスト機能を提供します。この機能は、サービストラフィックのピークに効果的に対応するために、ご利用のインスタンスタイプをスケールアウトする必要があるかどうかを判断するのに役立ちます。
利用シーン
サービストラフィックの短期的なピークに対応するために、現在のデータベースインスタンスタイプをスケールアウトする必要があるかどうかを判断します。
実際のシナリオで、スキーマ進化、特にインデックス変更の効果を検証します。これにより、変更が公開された後の障害リスクを低減します。
障害発生時に原因が特定できない場合に、クローンデータベース上で障害シナリオを再現し、原因を特定します。
機能アーキテクチャ
本番トラフィック再現によるストレステストの機能アーキテクチャを次の図に示します:
ソースデータベース:トラフィックがキャプチャされるデータベースです。このデータベースは、販売促進やビジネスの変更に備えている場合や、すでに障害が発生している場合があります。
ターゲットデータベース:ソースデータベースのクローンであり、同じテーブルスキーマとデータを持ちます。ソースデータベースからキャプチャされたトラフィックは、このデータベースで再生されます。
機能紹介
従来のストレステストソリューションでは、sysbench や TPCC などのツールがよく使用されます。特定のシナリオにおいて、これらのツールはデータの書き込みおよび読み取り速度を変化させてパフォーマンスへの影響を測定します。データの生成、テスト、レポート作成などの反復的なタスクを自動化します。しかし、これらのツールで使用される SQL は、実際のサービストラフィックとは大きく異なります。その結果、テスト結果は、実際のシナリオでインスタンスのパフォーマンスと安定性がどのように変化するかを正確に反映することができません。
DAS の本番トラフィック再現によるストレステスト機能は、実際のサービストラフィックをキャプチャします。本番システムへの圧力を動的に複製および増幅します。これにより、O&M (運用保守) の意思決定に役立つ、より客観的で価値のある結果を提供します。このアーキテクチャは、クライアントとテストオブジェクトで構成される単純な 2 点モデルではありません。代わりに、本番データベース、ストレステストクライアント、テストオブジェクトという 3 点アーキテクチャを使用します。このアーキテクチャは、本番データベースへの圧力をキャプチャし、特定の期間にわたってテストオブジェクト上でその圧力を現実的にシミュレートします。トラフィックは、異なる速度で再生することもできます。
従来のストレステストソリューションと比較して、DAS の本番トラフィック再現によるストレステストには次の利点があります:
実際のサービストラフィックを低ペイロードでキャプチャします。
書き込みトラフィックの再生とストレステストをサポートします。
トランザクションの順序が維持されることを保証します。
特別な設定なしですぐに利用できます。
前提条件
サポートされているソースデータベース:
RDS MySQL
PolarDB for MySQL
説明PolarDB for MySQL Enterprise Edition のシングルノードインスタンスはサポートされていません。
サポートされているターゲットデータベースインスタンス:
RDS MySQL。
PolarDB for MySQL。
PolarDB-X 2.0。
ソースデータベースインスタンスとターゲットデータベースインスタンスが DAS に接続されていること。詳細については、「Alibaba Cloud データベースインスタンスを DAS に接続」をご参照ください。
ソースデータベースインスタンスで DAS Enterprise Edition V1 以降が有効になっており、SQL Explorer 機能が有効になっていること。
ターゲットデータベースインスタンスで DAS Enterprise Edition V1 以降が有効になっており、SQL Explorer 機能が有効になっていること。ログインデックスのストレージ期間は 7 日間です。