メニュー
Amazon Relational Database Service
ユーザーガイド (API Version 2014-10-31)

プレビュー: Amazon Performance Insights を使用する

Amazon RDS Performance Insights は Amazon RDS DB インスタンスの負荷をモニタリングし、データベースのパフォーマンスを分析してトラブルシューティングを行うことができます。Amazon RDS Performance Insights は、現在 Amazon Aurora (PostgreSQL) を使用する場合のみ利用可能です。

Performance Insights は、既存の Amazon RDS モニタリング機能を拡張し、データベースのパフォーマンスを示し、影響を与えるあらゆる問題を分析します。Performance Insights ダッシュボードを使用してデータベースロードを視覚化したり、ロードを待機、SQL ステートメント、ホスト、ユーザー別にフィルタリングしたりできます。Performance Insights は Aurora PostgreSQL データベースエンジンのデフォルトとして設定されています。DB インスタンスで複数のデータベースがある場合、データベースのすべてのパフォーマンスデータは DB インスタンスで集計されます。データベースのパフォーマンスデータは 24 時間保持されます。

Performance Insights の中央メトリクスは DB Load で、データベースエンジンのアクティブなセッションの平均数を表します。アクティブなセッションとは、データベースエンジンに作業を送信し、レスポンスを待っている接続です。たとえば、データベースエンジンへ SQL クエリを送信する場合、データベースエンジンがそのクエリを処理している間、データベースセッションはアクティブです。

セッション情報が収集、集計され、Average Active Sessions グラフとしてダッシュボードに表示されます。[Average Active Sessions] グラフは最大 CPU 値をラインで表示しますので、アクティブなセッションがそこを超えているかどうかを確認できます。The 最大 CPU 値は、DB インスタンスの vCPU (仮想 CPU) のコア数によって決まります。

Average Active Sessions グラフの負荷が Max CPU ラインを超えることが良くあり、プライマリ待機状態が CPU の場合、システム CPU が過負荷になっています。この場合、インスタンスへの接続を抑制したり、CPU 負荷の高い SQL クエリを調整したり、より大きなインスタンスクラスを検討することができます。待機状態の高く一貫性があるインスタンスは、ロードが最大 CPU のラインを超えていなくても、解決すべきボトルネックまたはリソースの競合問題がある可能性があることを示します。

次の動画ではパフォーマンスインサイトの概要を提供します。

Performance Insights にダッシュボードを使用する

Performance Insights ダッシュボードには、パフォーマンスの問題を分析し、解決するのに役立つ、データベースのパフォーマンス情報が含まれます。メインダッシュボードページで、データベースロードについての情報を表示し、特定の待機状態、SQL クエリ、ホスト、ユーザーを詳細に調べることができます。

Performance Insights ダッシュボードを開く

パフォーマンスインサイトにダッシュボードを表示するには、以下の手順を使用します。

AWS マネジメントコンソールのパフォーマンスインサイトのダッシュボードを表示するには

  1. https://console.aws.amazon.com/rds/ にある Amazon RDS コンソールを開きます。

  2. ナビゲーションペインで、[Performance Insights] を選択します。

  3. DB インスタンスを選択します。Performance Insights ダッシュボードはそのインスタンスで表示されます。

    また、インスタンスのリストの [現在のアクティビティ] ウィジェットを選択することでダッシュボードにアクセスすることができます。

     メトリクスのフィルタリング
     メトリクスのフィルタリング

デフォルトでは、Performance Insights ダッシュボードは過去 60 分間のデータを示します。過去 5 分、60 分、6 時間、または 24 時間のデータを表示するように変更できます。

 メトリクスのフィルタリング

Performance Insights ダッシュボードコンポーネント

ダッシュボードは 2 つのパートに分割されます。

  1. Average Active Sessions グラフ - 最大 CPU ラインで示されているように、データベースロードと DB インスタンスの容量の比較を示します。

  2. 上位のロード項目テーブル - データベースロードに貢献している上位項目を表示します。

Average Active Sessions グラフ

Average Active Sessions グラフは、最大 CPU ラインで示されているように、データベースロードと DB インスタンスの容量を比較する方法を示します。デフォルトでは、ロードは待機状態ごとにグループ化されたアクティブなセッションとして表示されます。ロードを SQL クエリ、ホスト、またはユーザーごとにグループ化されたアクティブなセッションとして表示するように選択することもできます。

 メトリクスのフィルタリング

[Average Active Sessions] グラフ上の項目の上にマウスを移動して、凡例の指定期間に対するその項目の詳細を表示することができます。

 メトリクスのフィルタリング

上位のロード項目テーブル

上位のロード項目テーブルには、データベースロードに貢献している上位項目が表示されます。デフォルトでは、データベースロードに貢献している上位の SQL クエリを表示します。クエリは、複数の実際のクエリ (構造は似ていてもパラメータが異なる可能性がある) のダイジェストとして表示されています。代わりに、上位の待機状態、ホスト、またはユーザーを表示するように選択できます。

 メトリクスのフィルタリング

上位の各ロード項目に関連付けられるデータベースロードの割合は [DB Load by Waits] 列で示されます。この列は、[Average Active Sessions] グラフで現在選択されているグループ化によって、その項目に対する負荷が反映されます。たとえば、Average Active Sessions のグラフがホスト別にグループ化されており、上位の負荷アイテムテーブルの SQL クエリを参照しているとします。この場合、DB Load by Waits クエリが関連のホストにかける負荷がバーに反映されます。ここで、Average Active Sessions グラフに表示されるホストの色に合わせてバーは色分けされています。

もう 1 つ例を挙げると、Average Active Sessions のグラフが待機状態別にグループ化されており、上位の負荷アイテムテーブルの SQL クエリを参照していると想定します。この場合は、DB Load by Waits バーは、クエリが貢献している待機状態の量を示すために、サイズ、セグメント、および色で分けられています。また、どの待ち状態がそのクエリに影響を与えているかを示します。

 メトリクスのフィルタリング

Performance Insights ダッシュボードを使用してデータベースロードを分析する

Average Active Sessions のグラフにボトルネックが表示される場合、負荷の発生源を確認できます。そのためには、Average Active Sessions のグラフ下にある上位負荷項目テーブルを参照してください。SQL クエリやユーザのような特定の項目を選択すると、その項目をドリルダウンして詳細を表示できます。

待機と上位の SQL クエリでグループ分けされた DB ロードは、通常パフォーマンスの問題を最もよく理解できる組み合わせであるため、デフォルトの Performance Insights ダッシュボードビューです。待機でグループ化された DB 負荷は、データベースにリソースまたは同時のボトルネックがあるかどうかを示します。この場合、上位負荷項目のテーブルの SQL タブには、どのクエリがその負荷をかけているかが表示されます。

パフォーマンスの問題を診断するための一般的なワークフローは次のとおりです。

  1. [Average Active Sessions] グラフを確認し、最大 CPU ラインを超えているデータベースロードのインシデントがあるかどうかを確認します。

  2. ある場合は、[Average Active Sessions] グラフを確認して、どの待機状態 (複数) が主に原因であるかを特定します。

  3. 上位のロード項目テーブルの SQL タブが待機状態に最も影響しているクエリを確認することによって、ロードを引き起こすダイジェストクエリを特定します。これらは DB Load by Wait 列で識別できます。

  4. [SQL] タブでこれらのダイジェストクエリの 1 つを選択して展開し、構成されている子クエリを確認します。

たとえば、次のダッシュボードで、[IO: XactSync] の待機は頻繁に発生する問題です。[CPU] の待機はそれ以下ですが、まだ負荷に影響しています。

上位ロード項目テーブルの SQL タブの最初の 4 つのロールアップクエリは、最初の状態に強く相関します。したがって、これらの項目について、子クエリを詳細に調査するとよいでしょう。調査は、パフォーマンスの問題にどのように影響しているかを判断するために行います。

最後の 3 つのロールアップクエリは、CPU 負荷の主な要因です。これらは CPU 負荷が問題であるかどうかを調べるためのクエリです。

 メトリクスのフィルタリング

その他のユーザーインターフェイス機能

パフォーマンスインサイトのユーザーインターフェイスの他の機能を使用して、パフォーマンスデータを分析できます。

クリックアンドドラッグしてズームイン

パフォーマンスインサイトのインターフェースでは、負荷グラフの小さな部分を選択し、詳細をズームインすることができます。

 ズームイン

負荷グラフの一部を拡大するには、開始時間を選択し、目的の期間の最後までドラッグします。これを行うと、選択した領域が強調表示されます。マウスを離すと、選択した領域がロードチャートにズームインされ、トップ N のテーブルが再計算されます。

一時停止とズームアウト

負荷グラフの右上隅に、一時停止ズームアウトツールがあります。

 一時停止とズームアウト

一時停止 を選択すると、負荷グラフは自動更新を停止します。もう一度一時停止 を選択すると、グラフは自動更新を再開します。

ズームアウト を選択すると、負荷グラフが二番目に大きい時間間隔をズームアウトします。

関連トピック