Database Autonomy Service (DAS) は、企業がデータベース管理コストの最大90% を節約し、80% のO&Mリスクを削減するのに役立ちます。 これにより、企業はビジネスの革新と成長に集中できます。 このトピックでは、Double 11の例を使用して、DASの5つの主要な自律機能 (リアルタイム異常検出、障害の自己回復、自動最適化、自動スケーリング、インテリジェントストレステスト24/7) を説明します。
24 時間 365 日のリアルタイム異常検出
DASは、機械学習アルゴリズムに基づいて24/7リアルタイムの異常検出を提供します。 従来のしきい値ベースのアラート方法と比較して、この機能はデータベースのワークロードの異常をリアルタイムで検出します。 従来のアラート方法を使用すると、失敗は発生後に検出されます。 DASを使用して、さまざまな種類のデータを収集できます。 たとえば、リンクから数百のデータベースパフォーマンスメトリクスとSQLクエリログを収集できます。 また、大量のデータをオンラインおよびオフラインで処理および保存することもできます。 データベースの機械学習および予測アルゴリズムを使用して、継続的なモデルトレーニング、リアルタイムのモデルベースの予測、およびリアルタイムの異常検出と分析を実装できます。 従来のルールベースおよびしきい値ベースの方法と比較して、リアルタイムの異常検出機能には次の利点があります。
広い検出範囲。 DASは、さまざまなモニタリングメトリックに加えて、SQLクエリ、ログ、ロックなどの項目を監視します。
ニアリアルタイムで検出。 異常はほぼリアルタイムで検出されます。 従来の方法を使用すると、異常は発生後に検出されます。
AIベースの異常主導型検出。 障害が発生した後に障害を検出する従来のアラート方法とは異なり、DASはリアルタイムで異常を検出します。
定期的な異常識別、さまざまなサービス特性への適応、および予測。
リアルタイム異常検出機能は、グリッチ、周期的特性、トレンド特性、平均オフセットなどの一般的なワークロード異常を正確かつ自動的に識別できます。 この機能は、複数の時系列の特性を分析することによって異常を検出します。 異常が検出された後、リアルタイム異常検出機能は、根本原因、その後の障害からの回復、および最適化に基づくグローバルな診断および分析をトリガする。
自動自己修復
24/7リアルタイム異常検出機能により、データベースインスタンスの例外がリアルタイムで検出されます。 DASは根本原因を自動的に分析します。 その後、DASは、システムを損なう可能性のある動作を停止したり、システムを修復したりします。 これにより、データベースを自動的に復元できます。 これにより、エンタープライズビジネスへの影響が軽減されます。
2020年11月5日12:31:00に、DASに接続されたデータベースインスタンスのアクティブセッション数とCPU使用率が急増しました。 12:33:00 に、DAS 異常検出センターは増加がジッターではなくデータベースの例外によって引き起こされたことを確認。 この例外をトリガーとして、SQL の自動調整と根本原因の診断を開始。 12:34:00に、診断テストが完了した。 結果に基づいて、システムは例外を引き起こした2つのSQL文を特定しました。 これらのSQL文が検出された後、自動SQLスロットリングが直ちに開始されました。 その後、アクティブなセッションの数が減少し始めました。 既存の問題のあるSQL文が実行された後、アクティブなセッションの数は短時間で正常な値に復元され、CPU使用率も正常な値に復元されました。 このプロセス全体は、自己修復能力の以下の要件を満たす: 1 − 5 − 10。 数字 1 は、異常が 1 分以内に検出されたことを示します。 数字 5 は、異常が 5 分以内に特定されたことを示します。 数字 10 は、異常が 10 分以内で処理されたことを示します。
SQL の自動最適化
ほとんどの場合、データベースの問題の約80% は、SQLの最適化によって解決できます。 ただし、SQL最適化は複雑なプロセスであり、データベースに関する専門知識と経験が必要です。 SQL文を実行するためのワークロードは絶えず変化しているため、SQLの最適化にも時間がかかります。 前述のすべての要因により、SQLの最適化は、高度な専門知識を必要とし、高いコストを招く厳しいタスクになります。
DAS は、全体的なワークロードと実際のビジネスシナリオに基づいて、データベースの SQL レビューおよび最適化を継続的に実行します。 DASは、プロのデータベース管理者 (DBA) のように機能し、24時間データベースを管理します。 これにより、SQLの最適化が効果的になります。 従来の方法と比較して、DASのSQL診断機能には次の利点があります。
SQL診断では、外部のコストベースのモデルを使用して、インデックス作成とステートメント書き換えの推奨事項を提供し、パフォーマンスのボトルネックを特定し、仕様の推奨事項を作成します。 この機能は、従来のルールベースの方法によって引き起こされる問題を防ぐのに役立ちます。 ルールベースの従来の方法は、パフォーマンス改善の定量化において不適切な推奨および失敗を引き起こす可能性がある。
DASは、テスト用の正式な署名データベース、オンラインユースケースからの自動フィードバック抽出、Alibaba Group内のさまざまなシナリオなど、さまざまなシナリオに適しています。
SQL最適化は、SQL文の実行頻度や読み書き比率など、グローバルワークロードから生成されたデータに基づいて実装されます。 これにより、少数のワークロードに基づくSQLの最適化によって引き起こされる問題が最小限に抑えられます。
この例は、Double 11中の自動SQL最適化のユースケースを示しています。 11月7日、DASは、負荷異常検出機能を使用して、低速SQLステートメントによる負荷例外を検出しました。 この例外は、SQL最適化の閉ループプロセスを自動的にトリガーしました。 最適化されたSQLステートメントが公開された後、最適化結果を24時間連続して追跡して最適化を評価した。 最適化は成功しました。 統計によると、最適化前は、SQL文の平均スキャン行数は148,889.198で、平均RTは505.561ミリ秒でした。 最適化後、スキャンされた行の平均数を12.132した。 この値は、最適化前の平均RTの約1万分の1である。 平均RTは0.471ミリ秒に減少した。 この値は、最適化前の平均RTの約千分の1である。
自動SQL最適化前の平均RTとスキャン行数
自動SQL最適化後の平均RTとスキャン行数
自動スケーリング
Alibaba Cloudデータベースは、多様なコンピューティング仕様とストレージ容量を提供します。 ビジネスワークロードが変更されると、データベースの自動スケーリングを有効にできます。 クラウドネイティブアプリケーションの場合、データベースはビジネスワークロードの変更に基づいて最適な仕様を自動的に決定します。 このようにして、データベース容量要件を満たすために最小数のリソースが使用されます。 DASの時系列予測機能は、AIを使用して、データベースのビジネスモデルと容量要件を自動的に計算および予測します。 これにより、データベースの自動スケーリングを有効にして、ビジネス要件をリアルタイムで満たすことができます。
DASの自動スケーリング機能は、閉じたデータループを実装します。 ループは、パフォーマンスデータ収集、意思決定センター、アルゴリズムモデリング、仕様推奨、管理と実行、タスク追跡と評価のモジュールで構成されます。
パフォーマンスデータ収集モジュールは、さまざまなパフォーマンスメトリック、仕様設定、インスタンスのアクティブセッションに関する情報など、インスタンスのリアルタイムパフォーマンスデータを収集します。
意思決定センターモジュールは、インスタンスセッションとパフォーマンスデータに基づいてグローバルトレンドを提供します。 このようにして、根本原因に基づいてグローバルな自律性が実装されます。 たとえば、DASはSQLスロットリングを有効にして、不十分なコンピューティングリソースの問題を解決します。 ビジネストラフィックが急増していることがトレンドで示されている場合は、自動スケーリングが有効になります。
アルゴリズムモデリングは、DAS自動スケーリング機能の中核です。 このアルゴリズムは、ビジネスワークロードの例外を検出し、データベースインスタンスの容量仕様を推奨するのに役立ちます。 これにより、スケーリング時間、スケーリング方法、コンピューティング仕様の選択の難しさなどの問題が解決されます。
仕様の推奨および検証モジュールは、仕様の推奨を行い、推奨される仕様がデータベースインスタンスのデプロイメントタイプおよび実行環境に適しているかどうかを確認します。 このモジュールは、推奨仕様が現在のリージョンで使用可能かどうかもチェックします。 これにより、推奨仕様をクライアントで使用できるようになります。
管理および実行モジュールは、生成された推奨仕様を使用して、タスクを分散および実行する。
ステータス追跡モジュールは、仕様が変更される前後のデータベースインスタンスのパフォーマンスの変化を測定および追跡します。
DASに接続されたPolarDBインスタンスの場合、ユーザーのビジネストラフィックは着実に増加しました。 PolarDBインスタンスのCPU使用率は急増し続け、高くなりました。 DASは、自動スケーリングアルゴリズムを使用してインスタンス例外を正確に検出し、インスタンスに2つの読み取り専用ノードを自動的に追加しました。 その後、インスタンスのCPU使用率はより低い値に減少しました。 CPU使用率が2時間低い値を維持した後、インスタンストラフィックは増加し続け、自動スケーリング機能が再びトリガーされました。 オートスケーリング機能により、インスタンスの仕様が4 CPUコアと8 GBメモリから8 CPUコアと16 GBメモリにアップグレードされました。 その後、インスタンスは予想どおりに10時間以上実行されました。 これにより、ピーク時のインスタンスの可用性が確保されました。
インテリジェントストレステスト
DASのインテリジェントなストレステスト機能を使用すると、サービスをクラウドにデプロイする前、またはビジネスプロモーションの前に、必要なデータベースの仕様と容量を評価できます。 自動スケーリング機能は、データベースの指定されたパフォーマンスしきい値またはDASの組み込みインテリジェントポリシーに基づいて、リソースの自動スケーリングを実行するのに役立ちます。 このようにして、仕様の評価および管理のための作業負荷が減少する。
ほとんどの従来のストレステストソリューションは、SysbenchやTPC-Cなどの既存のストレステストツールを使用しています。 これらのソリューションの大きな問題の1つは、これらのストレステストツールで使用されるSQL文が、実際のビジネスシナリオのものとは大きく異なることです。 ストレステストの結果は、ビジネスの実際のパフォーマンスと安定性を示すことはできません。 DASのインテリジェントなストレステスト機能は、実際のビジネスワークロードに基づいて実装されています。 したがって、ストレステストの結果は、さまざまなワークロードに対するデータベースインスタンスのパフォーマンスと安定性の変化を反映しています。 この結果を得るために、インテリジェントなストレステスト機能では以下のような課題を解決する必要がありました。
ビジネスの安定性を評価するための24/7ストレステストなどの長期ストレステストは、大量のSQL文を収集できない場合に実装できます。 SQL文の収集には時間がかかり、ストレージコストがかかります。 提供される SQL 文が少ない場合、DAS はビジネス要件を満たす SQL 文を生成する必要があります。
同時スレッドを使用して、インスタンスのトラフィックを再生できます。 DASは、同時実行性が実際のビジネスと一致していることを確認する必要があります。 DASは、2倍や10倍などの再生レートオプション、およびピークストレステストも提供する必要があります。 レート2xは、再生レートが通常レートの2倍であることを指定する。 レート10xは、再生レートが通常レートの10倍であることを指定する。
DASはビジネスモデルを自動的に学習して、ストレステスト期間内の実際のビジネスワークロードを生成します。 DASは、プロモーションやデータベース選択の課題を克服するためのさまざまなストレステストシナリオも提供しています。