AnalyticDB for MySQL の [ワンクリック診断] 機能は、指定した期間にわたるクラスターの健全性を分析します。リソースレベル、負荷、SQL、オペレーター、ストレージなどのディメンションから、監視データ、ログ、テーブルの状態情報を関連付け、問題のトラブルシューティングをより効率的に行うのに役立ちます。
操作手順
-
AnalyticDB for MySQL コンソールにログインします。画面左上で、クラスターのリージョンを選択します。左側メニューで クラスター一覧 をクリックし、対象のクラスター ID をクリックします。
-
左側メニューで 監視情報 をクリックします。
-
メトリック曲線にカーソルを合わせるか、ドロップダウンリストから時間範囲を選択し、ワンクリック診断 をクリックします。
重要過去 14 日間のデータを診断できます。1 回の診断で指定できる最大時間範囲は 1 時間です。
診断結果ページが自動的に開きます。
診断レポート
診断結果には、不良 SQL 検出、異常パターン検出、ビジネスメトリック検出、コンピューティングレイヤー検出、ストレージレイヤー検出が含まれます。
不良 SQL
不良 SQL 検出レポートには、次の各メトリックの上位 10 クエリが降順で一覧表示されます: [Top Stages SQL]、[Most Memory-Consuming SQL]、[Most CPU-Consuming SQL]、[Top Data Read SQL]、[Top Data Output SQL]、および [Most Time-Consuming SQL]。[Most Time-Consuming SQL] メトリックについては、システムがバックグラウンドで各クエリに対して自動的に自己診断を実行します。[Actions] 列の左側にある
アイコンをクリックすると、SQL 診断結果をすぐに表示できます。クエリをさらに分析するには、[Actions] 列の 診断 をクリックしてクエリ詳細ページに移動し、実行計画を表示して自身で分析を行います。
異常パターン
この検出では、指定された期間内に送信数やピークメモリ使用量の急増など、異常なメトリックを持つ SQL パターンを特定します。この検出には、[Peak Memory]、[Query Duration]、[Operator Cost]、[Amount of Output Data]、[Query Submission] が含まれます。検出された各パターンには、次の 3 つのフィールドが含まれます:
-
SQL パターン: SQL テンプレートです。このテンプレートを使用して、異常パターンに一致する特定の SQL ステートメントを特定できます。
-
検出結果の詳細: 異常の原因。パーセンタイル値や最小値と最大値の比較などの詳細が含まれます。
-
その他の関連メトリック: 現在の異常パターンに関連するメトリック。ピークメモリ、オペレーターコスト、クエリ期間など、包括的な評価と分析を行うのに役立ちます。
ビジネスメトリック
ビジネスメトリック検出は、クラスター接続検出やクエリ応答時間検出など、クラスターのさまざまなビジネスメトリックをチェックします。
クラスター接続
この検出では、指定された時間範囲 (例:14:00 から 15:00) のデータと、過去 3 日間の同じ時間範囲のデータを比較します。データポイントの 80% が過去 3 日間の同時期と比較して 20%を超える増加率を示した場合、接続数が増加しているとフラグが立てられます。この場合、新しいビジネストラフィックや異常な接続がないか確認する必要があります。
クエリ応答時間
クエリ応答時間検出は、クラスター接続検出と同じロジックを使用します。データポイントの 80% が過去 3 日間の同時期と比較して 20%を超える増加率を示した場合、クエリ応答時間が増加しているとフラグが立てられます。トラフィックの増加や低速クエリがないか確認する必要があります。
増加率は、次の式を使用して計算されます:(現在のデータポイント - 過去のデータポイント) / 過去のデータポイント × 100。
コンピューティングレイヤー
コンピューティングレイヤー検出には、異常オペレーター検出、ノードステータス検出、CPU 使用率のスキュー検出、リソースグループの平均 CPU 使用率検出、リソースグループ間の CPU 使用率のスキュー検出、時系列メトリックの相関分析が含まれます。
異常オペレーター
-
オペレーターの詳細
この検出では、異常なオペレーター (Join、Aggregation、Sort、Window オペレーターなど) を特定し、選択したメトリックの降順でソートします。メモリ消費量、CPU 消費量、入出力データ量などのフィールドを使用して、異常なオペレーターを分析できます。また、[Actions] 列の 診断 をクリックして、オペレーターの元の実行計画を表示し、ソース SQL ステートメントを特定することもできます。
-
オペレーターの概要
複数の異常なオペレーターが集合的にリソース消費を増加させる可能性があるため、この検出では、最も CPU を消費するオペレーターと最もメモリを消費するオペレーターという 2 つの主要なカテゴリの集計概要も提供します。この概要は、さまざまなオペレーターメトリックの最大値を表示し、異常なオペレーターを特定するのに役立ちます。
ノードの状態
高負荷状態や内部例外が発生したコンピューティングノードは、正常でない状態になり、クエリの失敗や低速クエリを引き起こす可能性があります。この検出では、指定された期間中のすべてのコンピューティングノードのステータスを自動的にチェックし、いずれかのノードが正常でない場合に例外を報告することで、関連する問題の原因を特定するのに役立ちます。
CPU 使用率のスキュー
この検出では、異なるコンピューティングノード間で CPU 使用率が均等であるかどうかをチェックします。すべてのコンピューティングノードにおける最大 CPU 使用率が、それらの平均 CPU 使用率の 2 倍であり、この状態が指定された期間の 80%を超えて継続する場合、システムはコンピューティングノード間の CPU 使用率のスキューを報告します。これが発生した場合は、クラスターの監視とデータスキューのチェックを行ってください。詳細については、「データモデリング診断」をご参照ください。
検出結果には、正常、WARNING、CRITICAL の 3 つのレベルがあります。レベルが CRITICAL の場合は、ビジネスワークロードへの影響を防ぐために、問題の解決を優先してください。
リソースグループの平均 CPU 使用率
この検出では、指定された期間におけるリソースグループの平均 CPU 使用率をチェックします。リソースグループの CPU 使用率が 80%を超え、この状態が指定された期間の 80%を超えて継続する場合、システムはそのリソースグループに高い CPU 使用率のフラグを立てます。これが発生した場合は、リソースグループのリソースを調整する必要があるかどうかを評価してください。詳細については、「リソースグループの変更」をご参照ください。
検出結果には、正常、WARNING、CRITICAL の 3 つのレベルがあります。レベルが CRITICAL の場合は、ビジネスワークロードへの影響を防ぐために、問題の解決を優先してください。
リソースグループ間の CPU 使用率のスキュー
この検出では、異なるリソースグループ間で CPU 使用率が均等であるかどうかをチェックします。最も使用率の高いリソースグループの CPU 使用率が、リソースグループ全体の平均 CPU 使用率の 1.5 倍を超え、この状態が指定された期間の 80%を超えて継続する場合、システムはリソースグループ間の CPU 使用率のスキューを報告します。これが発生した場合は、異なるリソースグループ間でリソースを調整するかどうかを評価してください。詳細については、「リソースグループの変更」をご参照ください。
検出結果には、正常、WARNING、CRITICAL の 3 つのレベルがあります。レベルが CRITICAL の場合は、ビジネスワークロードへの影響を防ぐために、問題の解決を優先してください。
時系列メトリックの相関分析
[Average CPU Utilization of Compute Node] および [Maximum CPU Utilization of Compute Node] メトリックが異常な場合、この分析は原因の可能性がある相関メトリックを特定します。潜在的な根本原因メトリックには、[QPS]、[BUILD jobs]、[Update TPS]、[Deletion TPS]、[Write TPS] が含まれます。
たとえば、[QPS] が [Average CPU Utilization of Compute Node] の増加と相関している場合、クエリ量が多いことがコンピューティングノードの CPU 使用率を押し上げていることを示唆しています。
正確な相関分析を行うには、診断期間に、主要なメトリックで異常が発生した時間が含まれていることを確認してください。
ストレージレイヤー
ストレージレイヤー検出には、テーブル作成とアクセスの検出、ノードステータス検出、最大 CPU 使用率検出、平均 CPU 使用率検出、CPU 使用率のスキュー検出、時系列メトリックの相関分析が含まれます。
テーブルの作成とアクセス
-
テーブルアクセス検出
テーブルアクセス検出は、指定された期間にアクセスされたテーブルを自動的にチェックします。これには、最大データ読み取り量、平均データ読み取り量、最大データ読み取り時間、平均データ読み取り時間、テーブルアクセス数の 5 つのメトリックが含まれます。結果は、現在のメトリックに基づいて降順でソートされます。
-
データスキューがあるテーブルの詳細
AnalyticDB for MySQL では、パーティション化されたテーブルでは、均等に分散されたフィールドを分散フィールドとして選択する必要があります。データが書き込まれると、この分散フィールドに基づいて異なるストレージノードに分散されます。不均一な分散フィールドは、データスキューを引き起こします。この機能は、まず最大のテーブルを特定し、次にそれらのデータ分散を分析することによってデータスキューを検出します。スキューのあるテーブルを最適化すると、クエリパフォーマンスが向上し、ディスク領域全体のデータ量が均等化され、ディスクロックのリスクが軽減されます。
-
不適切なパーティションを持つテーブルの詳細
この検出では、まずデータ量が最も大きいテーブルを特定し、次にこれらのテーブルに不適切なパーティションがないかチェックします。
ノードの状態
高負荷状態や内部例外が発生したストレージノードは、正常でない状態になり、クエリの失敗や低速クエリを引き起こす可能性があります。この検出では、指定された期間中のすべてのストレージノードのステータスを自動的にチェックし、いずれかのノードが正常でない場合に例外を報告することで、関連する問題の原因を特定するのに役立ちます。
最大 CPU 使用率
この検出では、指定された期間におけるすべてのストレージノードの最大 CPU 使用率をチェックします。すべてのストレージノードの最大 CPU 使用率が 90%を超え、この状態が指定された期間の 80%を超えて継続する場合、システムは CPU 使用率が高いとフラグを立てます。この場合は、低速クエリがないか確認してください。詳細については、「典型的な低速クエリ」をご参照ください。
検出結果には、正常、WARNING、CRITICAL の 3 つのレベルがあります。レベルが CRITICAL の場合は、ビジネスワークロードへの影響を防ぐために、問題の解決を優先してください。
平均 CPU 使用率
この検出では、指定された期間におけるすべてのストレージノードの平均 CPU 使用率をチェックします。すべてのストレージノードの平均 CPU 使用率が 80%を超え、この状態が指定された期間の 80%を超えて継続する場合、システムは CPU 使用率が高いとフラグを立てます。この場合は、低速クエリがないか確認してください。詳細については、「典型的な低速クエリ」をご参照ください。
検出結果には、正常、WARNING、CRITICAL の 3 つのレベルがあります。レベルが CRITICAL の場合は、ビジネスワークロードへの影響を防ぐために、問題の解決を優先してください。
CPU 使用率のスキュー
この検出では、異なるストレージノード間で CPU 使用率が均等であるかどうかをチェックします。すべてのストレージノードにおける最大 CPU 使用率が、それらの平均 CPU 使用率の 2 倍であり、この状態が指定された期間の 80%を超えて継続する場合、システムはストレージノード間の CPU 使用率のスキューを報告します。これが発生した場合は、クラスターの監視とデータスキューのチェックを行ってください。詳細については、「データモデリング診断」をご参照ください。
検出結果には、正常、WARNING、CRITICAL の 3 つのレベルがあります。レベルが CRITICAL の場合は、ビジネスワークロードへの影響を防ぐために、問題の解決を優先してください。
時系列メトリックの相関分析
[Average CPU Utilization of Storage Node] および [Maximum CPU Utilization of Storage Node] メトリックが異常な場合、この分析は原因の可能性がある相関メトリックを特定します。潜在的な根本原因メトリックには、[QPS]、[BUILD jobs]、[Update TPS]、[Deletion TPS]、[Write TPS] が含まれます。
たとえば、[QPS] が [Average CPU Utilization of Storage Node] の増加と相関している場合、クエリ量が多いことがストレージノードの CPU 使用率を押し上げていることを示唆しています。
正確な相関分析を行うには、診断期間に、主要なメトリックで異常が発生した時間が含まれていることを確認してください。