AnalyticDB for MySQLデータウェアハウスエディション (V3.0) は診断機能を提供します。 この機能により、特定の期間内のクラスターの実行ステータスを診断できます。 AnalyticDB for MySQLは、モニタリングデータ、ログデータ、およびデータベースとテーブルのステータスに基づいて共同分析を実行します。 AnalyticDB for MySQLは、リソース使用量、ワークロードの変更、SQLクエリ、演算子、ストレージなどの複数の側面からクラスターのヘルスステータスを評価し、問題を効率的に特定して解決するのに役立ちます。
手順
AnalyticDB for MySQLコンソールにログインします。 ホームページの左上でリージョンを選択します。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。 [クラスター] ページで、管理するクラスターを見つけ、クラスターIDをクリックします。
左側のナビゲーションウィンドウで、監視情報 をクリックします。
指標の曲線の上にポインターをドラッグするか、ドロップダウンリストから時間範囲を選択して ワンクリック診断 をクリックします。
重要この機能は、過去14日間のみ最大1時間の範囲内のデータ診断をサポートします。
表示されるページで、クラスターの診断結果を表示できます。
診断レポートの解釈
診断結果には、不良SQL検出、異常パターン検出、ビジネスメトリック検出、計算レイヤ検出、およびストレージレイヤ検出に関する情報が含まれます。 診断結果を使用して、問題を特定して解決できます。
悪いSQL検出
不正なSQL検出には、トップステージSQL、最もメモリを消費するSQL、最もCPUを消費するSQL、トップデータ読み取りSQL、トップデータ出力SQL、および最も時間を消費するSQLのメトリックが含まれます。 各メトリックの降順に最大10個のSQLクエリが表示されます。 システムは、Most Time Consuming SQLメトリックのSQLクエリごとに自己診断を実行します。 [操作] 列の左側にあるアイコンをクリックすると、各SQLクエリの診断結果を表示できます。 現在のSQLクエリを分析するには、[操作] 列の [診断] をクリックして、クエリの詳細ページに移動し、実行計画を表示します。
異常なパターン検出
異常パターン検出は、特定の期間内の異常パターンを表示します。 たとえば、パターンの提出数またはピークメモリが劇的に増加します。 異常パターン検出には、ピークメモリ、クエリ期間、オペレータコスト、出力データ量、およびクエリ送信のメトリックが含まれます。 各メトリックは、SQLパターン、検出結果の詳細、およびその他の関連メトリックのフィールドで構成されます。
SQLパターン: 異常パターンのSQL文を特定するのに役立ちます。
検出結果の詳細: 過去のデータとの比較結果など、異常パターンの原因を表示します。
その他の関連メトリック: データ分析を容易にするために、ピークメモリ、オペレータコスト、クエリ期間など、その他の関連メトリックを表示します。
ビジネスメトリック検出
ビジネスメトリック検出には、クラスター接続検出とクエリ応答時間検出が含まれます。
クラスター接続の検出
この検出は、現在の日と過去3日間のそれぞれとの間の1時間までの特定の期間内のデータを比較する。 当日の特定の期間内の接続数が、過去3日間のそれぞれのデータポイントと比較されるデータポイントの80% について20% を超えて増加した場合、接続数は増加していると見なされます。 新しいビジネストラフィックまたは異常な接続を確認する必要があります。
クエリ応答時間の検出
この検出は、クラスタ接続検出と同じロジックを使用します。 当日の特定の期間内のクエリ応答時間が、過去3日間のそれぞれのデータポイントと比較されるデータポイントの80% について20% を超えて増加した場合、クエリ応答時間は増加したと見なされます。 トラフィックの増加または低速クエリを確認する必要があります。
成長率は、(現在のメトリック値 − 以前のメトリック値) /以前のメトリック値 × 100%
の式を用いて計算される。
計算レイヤーの検出
ストレージ層検出は、異常オペレータ検出、ノード状態検出、CPU利用率スキュー検出、リソースグループの平均CPU利用率検出、リソースグループ間のCPU利用率スキュー検出、および時系列メトリックの相関分析を含む。
異常なオペレータ検出
オペレーターの詳細
異常な演算子の検出により、Join、Aggregation、Sort、Window演算子などの異常な演算子をすばやく識別し、メトリックで降順に演算子を並べ替えることができます。 消費メモリ、消費CPUリソース、入力データ量、出力データ量などのフィールドに基づいて、異常演算子を分析できます。 また、[操作] 列の [診断] をクリックして、演算子の実行計画を照会し、演算子のSQL文とソースを特定することもできます。
演算子の概要
特定のケースでは、複数の異常なオペレータが大量のリソースを消費する可能性があります。 異常な演算子検出では、ほとんどのCPU消費演算子とほとんどのメモリ消費演算子が集計されます。 集計結果を使用して、最大メトリック値を確認し、異常な演算子を識別できます。
ノードステータス検出
エグゼキュータノードが大量のデータを処理する必要がある場合、または内部エラーが発生した場合、ノードが異常になり、最終的にクエリの実行や迅速な応答に失敗する可能性があります。 ノードステータス検出は、特定の期間内のノードのステータスに基づいて異常なエグゼキューターノードに関する例外を表示し、例外の原因を特定するのに役立ちます。
CPU使用率スキュー検出
この検出は、実行ノード間のCPU使用率がバランスしているかどうかをチェックします。 すべてのエグゼキュータノードの最大CPU使用率が、特定の期間の80% ですべてのエグゼキュータノードの平均CPU使用率の2倍を超えたままである場合、エグゼキュータノードのCPU使用率は歪んでいると見なされます。 この問題に常に注意を払い、データスキューを確認することをお勧めします。 詳細については、「データモデリング診断」をご参照ください。
検出結果は、NORMAL、WARNING、およびCRITICALのレベルで表示されます。 ビジネスが期待どおりに実行されるようにするには、CRITICALレベルでの検出結果に細心の注意を払ってください。
リソースグループの平均CPU使用率検出
この検出は、特定の期間内のリソースグループの平均CPU使用率をチェックします。 リソースグループのCPU使用率が特定の期間80% 80% を超えたままである場合、リソースグループのCPU使用率は高いと見なされます。 リソースグループ内のリソース量を変更するかどうかを評価することを推奨します。 詳細については、「リソースグループの作成」トピックの「リソースグループの変更」セクションをご参照ください。
検出結果は、NORMAL、WARNING、およびCRITICALのレベルで表示されます。 ビジネスが期待どおりに実行されるようにするには、CRITICALレベルでの検出結果に細心の注意を払ってください。
リソースグループ間のCPU使用率スキュー検出
この検出は、リソースグループ間のCPU使用率が均衡しているかをチェックする。 すべてのリソースグループの最大CPU使用率が、特定の期間の80% ですべてのリソースグループの平均CPU使用率の2.5倍を超えている場合、リソースグループのCPU使用率は歪んでいると見なされます。 リソースグループ内のリソース量を変更するかどうかを評価することを推奨します。 詳細については、「リソースグループの作成」トピックの「リソースグループの変更」セクションをご参照ください。
検出結果は、NORMAL、WARNING、およびCRITICALのレベルで表示されます。 ビジネスが期待どおりに実行されるようにするには、CRITICALレベルでの検出結果に細心の注意を払ってください。
時系列メトリックの相関分析
[計算ノードの平均CPU使用率] および [計算ノードの最大CPU使用率] メトリックが異常の場合、システムは時系列メトリックの相関分析を使用して、異常の原因となる関連メトリックを検出します。 関連するメトリックには、QPS、BUILD Jobs、Update TPS、Delete TPS、およびWrite TPSが含まれます。 関連するメトリックを使用して、CPU使用率が高い原因を特定できます。
例えば、計算ノードの平均CPU使用率メトリックの変化に関連するメトリックとしてQPSが検出された場合、計算ノードの平均CPU使用率の増加は、多数のクエリによって引き起こされる可能性がある。
診断で時系列メトリックの相関分析を使用する場合、主要なメトリック異常のモニタリング期間を含む時間範囲を指定することをお勧めします。 これは、メトリック異常の原因を最も早い機会に特定するのに役立ちます。
ストレージレイヤーの検出
ストレージ層の検出には、テーブル作成とアクセス検出、ノードステータス検出、最大CPU使用率検出、平均CPU使用率検出、CPU使用率スキュー検出、時系列メトリックの相関分析が含まれます。
テーブルの作成とアクセス検出
テーブルアクセス検出
この検出は、特定の期間内にアクセスされたテーブルをチェックし、メトリックの降順でテーブルを表示します。 最大読み取りデータ量、平均読み取りデータ量、最大読み取りコスト、平均読み取りコスト、およびテーブルアクセスのメトリックが含まれます。
データスキュー検出
AnalyticDB for MySQLパーティションテーブルでは、均等に分散されたフィールドを分散フィールドとして選択して、データを異なるワーカーノードに分散する必要があります。 不均一な配布フィールドを選択すると、テーブルスキューが発生する場合があります。 この検出は、最大量のデータを有するテーブルを識別し、データが歪んでいるかどうかをチェックする。 スキューテーブルを最適化すると、クエリのパフォーマンスが向上し、ディスク間のデータ量のバランスが取れます。 これにより、ディスクのロックが防止される。
パーティションの不合理な検出
この検出は、最大量のデータを有するテーブルを識別し、データが不合理な方法で分割されているかどうかをチェックする。
ノードステータス検出
ワーカーノードが大量のデータを処理する必要がある場合や内部エラーが発生した場合、ノードが異常になり、最終的にクエリの実行や迅速な応答に失敗する可能性があります。 ノードステータス検出は、特定の期間内のノードのステータスに基づいて異常なワーカーノードに関する例外を表示し、例外の原因を特定するのに役立ちます。
最大CPU使用率の検出
この検出は、特定の期間内のすべてのワーカーノードの最大CPU使用率をチェックします。 すべてのワーカーノードの最大CPU使用率が特定の期間80% 90% を超えたままである場合、ワーカーノードのCPU使用率は高いと見なされます。 遅いクエリをチェックすることを推奨します。 詳細については、「一般的なスロークエリ」をご参照ください。
検出結果は、NORMAL、WARNING、およびCRITICALのレベルで表示されます。 ビジネスが期待どおりに実行されるようにするには、CRITICALレベルでの検出結果に細心の注意を払ってください。
平均CPU使用率検出
この検出は、特定の期間内のすべてのワーカーノードの平均CPU使用率をチェックします。 すべてのワーカーノードの平均CPU使用率が特定の期間80% 80% を超えたままである場合、ワーカーノードのCPU使用率は高いと見なされます。 遅いクエリをチェックすることを推奨します。 詳細については、「一般的なスロークエリ」をご参照ください。
検出結果は、NORMAL、WARNING、およびCRITICALのレベルで表示されます。 ビジネスが期待どおりに実行されるようにするには、CRITICALレベルでの検出結果に細心の注意を払ってください。
CPU使用率スキュー検出
ワーカーノード間のCPU使用率がバランスしているかどうかを確認します。 すべてのワーカーノードの最大CPU使用率が、特定の期間の80% ですべてのワーカーノードの平均CPU使用率の2倍を超えている場合、ワーカーノードのCPU使用率は歪んでいると見なされます。 この問題に常に注意を払い、データスキューを確認することをお勧めします。 詳細については、「データモデリング診断」をご参照ください。
検出結果は、NORMAL、WARNING、およびCRITICALのレベルで表示されます。 ビジネスが期待どおりに実行されるようにするには、CRITICALレベルでの検出結果に細心の注意を払ってください。
時系列メトリックの相関分析
[ストレージノードの平均CPU使用率] および [ストレージノードの最大CPU使用率] のメトリックが異常の場合、システムは時系列メトリックの相関分析を使用して、異常の原因となる関連メトリックを検出します。 メトリックには、QPS、BUILD Jobs、Update TPS、Deletion TPS、およびWrite TPSが含まれます。 関連するメトリックを使用して、CPU使用率が高い原因を特定できます。
例えば、Average CPU Utilization of Storage Nodeメトリックの変化に関連するメトリックとしてQPSが検出された場合、多数のクエリによってストレージノードの平均CPU使用率の増加が引き起こされる可能性がある。
診断で時系列メトリックの相関分析を使用する場合、主要なメトリック異常のモニタリング期間を含む時間範囲を指定することをお勧めします。 これは、メトリック異常の原因を最も早い機会に特定するのに役立ちます。