AnalyticDB for MySQL の ワンクリック診断 機能は、特定の期間におけるクラスターの健全性を分析します。この機能は、リソースレベル、負荷、SQL、オペレーター、ストレージなどのディメンションにわたって監視データ、ログ、テーブルステータス情報を関連付け、問題のトラブルシューティングをより効率的に行うのに役立ちます。
手順
-
AnalyticDB for MySQL コンソールにログインします。 左上隅で、クラスターのリージョンを選択します。 左側のナビゲーションペインで、クラスター一覧 をクリックし、対象のクラスター ID をクリックします。
-
左側のナビゲーションペインで、監視情報 をクリックします。
-
メトリック曲線にカーソルを合わせるか、ドロップダウンリストから時間範囲を選択して、ワンクリック診断 をクリックします。
重要過去 14 日間のデータを診断できます。1 回の診断で指定できる最大時間範囲は 1 時間です。
診断結果ページが自動的に開きます。
診断レポート
診断結果には、不良 SQL 検出、異常パターン検出、ビジネスメトリック検出、コンピューティングレイヤー検出、ストレージレイヤー検出が含まれます。
不良 SQL
不良 SQL 検出レポートには、トップステージ SQL、メモリ消費量が最も多い SQL、CPU 消費量が最も多い SQL、データ読み取り量上位の SQL、データ出力量上位の SQL、および実行時間が最も長い SQL の各メトリクスについて、上位 10 件のクエリが降順で一覧表示されます。 実行時間が最も長い SQL メトリクスについては、システムがバックグラウンドで各クエリに対して自己診断を自動的に実行します。 「操作」列の左側にある
アイコンをクリックすると、すぐに SQL 診断結果を表示できます。 クエリをさらに分析するには、「操作」列の 診断 をクリックしてクエリ詳細ページに移動し、実行計画を表示して、セルフサービス分析を実行できます。
異常パターン
この検出は、指定された期間内に、送信回数の急増やピークメモリ使用量など、異常なメトリックを持つ 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% 以上の成長率を示している場合、クエリレスポンスタイムが増加しているとフラグが立てられます。トラフィックの増加やスロークエリがないか確認する必要があります。
成長率は、次の式を使用して計算されます:(Current data point - Past data point) / Past data point × 100
コンピューティングレイヤー
コンピューティングレイヤー検出には、異常オペレーター検出、ノードステータス検出、CPU 使用率のスキュー検出、リソースグループの平均 CPU 使用率検出、リソースグループ間の CPU 使用率のスキュー検出、時系列メトリックの相関分析が含まれます。
異常オペレーター
-
オペレーター詳細
この検出では、選択したメトリックの降順でソートされた異常なオペレーター (例: Join、Aggregation、Sort、Window オペレーター) を特定します。メモリ消費量、CPU 消費量、入出力データ量などのフィールドを使用して、異常なオペレーターを分析できます。また、「操作」列の 診断 をクリックして、オペレーターの元の実行計画を表示し、ソース SQL ステートメントを特定することもできます。
-
オペレーターサマリー
複数の異常なオペレーターが集合的にリソース消費を増加させる可能性があるため、この検出では、最も CPU を消費するオペレーターと最もメモリを消費するオペレーターという 2 つの主要カテゴリの集約サマリーも提供されます。このサマリーは、さまざまなオペレーターメトリックの最大値を表示し、異常なオペレーターを識別するのに役立ちます。
ノードステータス
高負荷状態または内部例外を抱えるエグゼキューターノードは、正常でない状態になる可能性があり、クエリの失敗やスロークエリにつながります。この検出は、指定された期間中のすべてのエグゼキューターノードのステータスを自動的にチェックし、いずれかのノードが正常でない場合は例外を報告し、関連する問題の原因を特定するのに役立ちます。
CPU 使用率のスキュー
この検出は、異なるエグゼキューターノード間で CPU 使用率がバランスしているかどうかをチェックします。すべてのエグゼキューターノードの最大 CPU 使用率が平均 CPU 使用率の 2 倍であり、この状態が指定された期間の 80% 以上持続している場合、システムはエグゼキューターノード間の CPU 使用率のスキューを報告します。これが発生した場合は、クラスターを監視し、データスキューがないか確認することを検討してください。詳細については、「データモデリング診断」をご参照ください。
検出結果には、正常、警告、クリティカルの 3 つのレベルがあります。レベルがクリティカルの場合は、ビジネスワークロードへの影響を防ぐため、問題の解決を優先してください。
リソースグループの平均 CPU 使用率
この検出は、指定された期間中のリソースグループの平均 CPU 使用率をチェックします。リソースグループの CPU 使用率が 80% を超え、この状態が指定された期間の 80% 以上持続している場合、システムはそのリソースグループの CPU 使用率が高いとフラグを立てます。これが発生した場合は、リソースグループのリソースを調整する必要があるかどうか評価を検討してください。詳細については、「リソースグループを変更する」をご参照ください。
検出結果には、正常、警告、クリティカルの 3 つのレベルがあります。レベルがクリティカルの場合は、ビジネスワークロードへの影響を防ぐため、問題の解決を優先してください。
リソースグループ間の CPU 使用率のスキュー
この検出は、異なるリソースグループ間で CPU 使用率がバランスしているかどうかをチェックします。最も使用率の高いリソースグループの CPU 使用率が、リソースグループ全体の平均 CPU 使用率の 1.5 倍を超え、この状態が指定された期間の 80% 以上持続している場合、システムはリソースグループ間の CPU 使用率のスキューを報告します。これが発生した場合は、異なるリソースグループ間でリソースを調整するかどうかの評価を検討してください。詳細については、「リソースグループを変更する」をご参照ください。
検出結果には、正常、警告、クリティカルの 3 つのレベルがあります。レベルがクリティカルの場合は、ビジネスワークロードへの影響を防ぐため、問題の解決を優先してください。
時系列メトリックの相関
[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 使用率が高いとフラグを立てます。この場合は、スロークエリがないか確認してください。詳細については、「典型的なスロークエリ」をご参照ください。
検出結果には、正常、警告、クリティカルの 3 つのレベルがあります。レベルがクリティカルの場合は、ビジネスワークロードへの影響を防ぐため、問題の解決を優先してください。
平均 CPU 使用率
この検出は、指定された期間中のすべてのワーカーノードの平均 CPU 使用率をチェックします。すべてのワーカーノードの平均 CPU 使用率が 80% を超え、この状態が指定された期間の 80% 以上持続している場合、システムは CPU 使用率が高いとフラグを立てます。この場合は、スロークエリがないか確認してください。詳細については、「典型的なスロークエリ」をご参照ください。
検出結果には、正常、警告、クリティカルの 3 つのレベルがあります。レベルがクリティカルの場合は、ビジネスワークロードへの影響を防ぐため、問題の解決を優先してください。
CPU 使用率のスキュー
この検出は、異なるワーカーノード間で CPU 使用率がバランスしているかどうかをチェックします。すべてのワーカーノードの最大 CPU 使用率が平均 CPU 使用率の 2 倍であり、この状態が指定された期間の 80% 以上持続している場合、システムはワーカーノード間の CPU 使用率のスキューを報告します。これが発生した場合は、クラスターを監視し、データスキューがないか確認することを検討してください。詳細については、「データモデリング診断」をご参照ください。
検出結果には、正常、警告、クリティカルの 3 つのレベルがあります。レベルがクリティカルの場合は、ビジネスワークロードへの影響を防ぐため、問題の解決を優先してください。
時系列メトリックの相関
[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 使用率を押し上げていることを示唆しています。
正確な相関分析を行うには、診断期間が主要なメトリック異常が発生した時間をカバーしていることを確認してください。