Amazon Relational Database Service
ユーザーガイド

パフォーマンスインサイトダッシュボードを使用する

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

パフォーマンスインサイトダッシュボードを開く

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

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

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

  2. ナビゲーションペインで、[パフォーマンスインサイト] を選択します。

  3. DB インスタンスを選択します。この DB インスタンスにパフォーマンスインサイトダッシュボードが表示されます。

    パフォーマンスインサイトを有効にした DB インスタンスでは、DB インスタンスのリストで [Sessions (セッション)] 項目を選択してダッシュボードにアクセスすることもできます。[Current activity] の [Sessions] 項目には、直近 5 分間におけるアクティブなセッションの平均データベース負荷が表示されます。負荷はバーでグラフィカルに示されます。バーが空の場合、DB インスタンスはアイドル状態です。負荷が増加すると、バーが青色で塗りつぶされます。負荷が DB インスタンスクラスのおける仮想 CPU (vCPU) の数を超えると、バーが赤色になり、ボトルネックとなる可能性があることが示されます。

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

    DB インスタンスのダッシュボードを以下の図に示します。

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

デフォルトでは、パフォーマンスインサイトダッシュボードは過去 60 分間のデータを示します。過去 5 分、60 分、5 時間、24 時間、または 1 週間のデータを表示するように変更できます。また、利用可能なデータもすべて表示されます。

パフォーマンスインサイトダッシュボードが自動的に新しいデータで更新されます。更新の頻度は、表示されるデータの量によって異なります。

  • 「5 分」は 5 秒ごとに更新されます。

  • 「1 時間」と「5 時間」はどちらも 1 分ごとに更新されます。

  • 「24 時間」は 5 分ごとに更新されます。

  • 「1 週間」は 1 時間ごとに更新されます。


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

パフォーマンスインサイトダッシュボードコンポーネント

このダッシュボードは次の 3 つのパートに分かれています。

  1. カウンターメトリクスグラフ – 特定のパフォーマンスカウンターメトリクスのデータを表示します。

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

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

カウンターメトリクスグラフ

カウンターメトリクスグラフはパフォーマンスカウンターのデータを表示します。デフォルトで表示されるメトリクスは、blks_read.avg および xact_commit.avg です。グラフの右上にある歯車のアイコンを選択して、表示するパフォーマンスカウンターを選択できます。


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

詳細については、「パフォーマンスインサイトのカウンター」を参照してください。

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] バーは、クエリが貢献している待機状態の量を示すために、サイズ、セグメント、および色で分けられています。また、どの待ち状態がそのクエリに影響を与えているかを示します。


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

[Top Load Items (上位の負荷項目)] テーブルでは、SQL ステートメントに関連した以下のタイプの識別子 (ID) を表示できます。

  • SQL ID – データベースが SQL ステートメントを一意に識別するために使用する ID。

    Oracle および SQL Server DB インスタンスの場合、SQL ID を使用して特定の SQL ステートメントを見つけることができます。

  • Support SQL ID – SQL ID のハッシュ値。この値は、AWS サポートを利用しているときに SQL ID を参照するためだけのものです。AWS サポートが実際の SQL ID や SQL テキストにアクセスすることはできません。

  • Digest ID – データベースが SQL ダイジェストを一意に識別するために使用する ID。SQL ダイジェストには、リテラルを削除し、空白を標準化した 1 つ以上の SQL ステートメントを含めることができます。リテラルは疑問符 (?) に置き換えられます。

    Amazon RDS for MariaDB、MySQL、および PostgreSQL DB インスタンスの場合は、ダイジェスト ID を使用して特定の SQL ダイジェストを見つけることができます。

    Oracle および SQL Server DB インスタンスの場合、ダイジェスト ID は SQL ID と同じです。[Top Load Items (上位の負荷項目)] テーブルの先頭行は、実際の SQL ステートメント (リテラルを含む) です。

  • ダイジェスト ID のサポート – Digest ID のハッシュ値。この値は、AWS サポートを利用しているときにダイジェスト ID を参照するためだけのものです。AWS サポートが実際のダイジェスト ID や SQL テキストにアクセスすることはできません。

[Top Load Items (上位の負荷項目)] テーブルで、トップステートメントを開いてその ID を表示できます。次の図は、トップステートメントを開いた状態を示しています。


						SQL ID

[設定] アイコンを選択して、[Top Load Items (上位の負荷項目)] テーブルに表示される ID を管理できます。


						SQL ID

[設定] アイコンを選択すると、[設定] ウィンドウが開きます。


						SQL ID

[Top Load Items (上位の負荷項目)] テーブルに表示する ID を有効にして、[保存] を選択します。

パフォーマンスインサイトダッシュボードを使用してデータベースロードを分析する

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

待機および上位 SQL クエリによってグループ分けされた DB 負荷は、パフォーマンスインサイトダッシュボードのデフォルトビューです。通常、この組み合わせは、パフォーマンス問題に関する最も正しい情報を提供します。待機でグループ化された 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 負荷が問題であるかどうかを調べるためのクエリです。


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

パフォーマンスインサイトダッシュボードで SQL テキストの表示量を増やす

デフォルトでは、[Top Load Items (上位の負荷項目)] テーブルの各行には SQL ステートメントごとに 500 バイトの SQL テキストが表示されます。SQL ステートメントのサイズが 500 バイトを超える場合、この SQL ステートメントをパフォーマンスインサイトダッシュボードで開くことで、ステートメントの表示量を増やすことができます。パフォーマンスインサイトダッシュボードは、最大 4,096 バイトまでの SQL ステートメントを表示できます。表示されている SQL ステートメントはコピーすることができます。4,096 バイトを超えて表示するには、[完全な SQL のダウンロード] を選択して、最大 DB エンジンの制限の SQL テキストを表示します。

SQL テキストの制限は、DB エンジンによって異なります。以下の制限が適用されます。

  • Amazon RDS for MySQL および MariaDB – 1,024 バイト

  • Amazon RDS for Oracle – 1,000 バイト

  • Amazon RDS PostgreSQLtrack_activity_query_size DB インスタンスパラメータで設定

Amazon RDS PostgreSQL DB インスタンスの場合は、track_activity_query_size DB インスタンスパラメータを設定することで、SQL テキストサイズの上限を最大 102,400 バイトまで制御できます。AWS マネジメントコンソール を使用して、このパラメータで設定した制限まで SQL テキストをダウンロードできます。詳細については、「Amazon RDS PostgreSQL DB インスタンスの SQL テキスト制限の設定」を参照してください。

重要

現時点では、AWS マネジメントコンソール でのみ、表示およびダウンロードする SQL テキストの量を増やすことができます。AWS パフォーマンスインサイト CLI および API は、最大 500 バイトのテキストを返すことができます。

注記

現時点では、SQL Server DB インスタンスで 500 バイトを超える SQL テキストを表示、コピー、またはダウンロードすることはできません。

Amazon RDS for MySQL DB インスタンスの場合、SQL テキストの表示量を増やすことは 欧州 (ストックホルム) リージョンでサポートされていません。

パフォーマンスインサイトダッシュボードで SQL テキストの表示量を増やすには

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

  2. ナビゲーションペインで、[パフォーマンスインサイト] を選択します。

  3. DB インスタンスを選択します。この DB インスタンスにパフォーマンスインサイトダッシュボードが表示されます。

    500 バイトを超える SQL ステートメントは、次のイメージのように表示されます。

    
							テキストサイズが大きい SQL ステートメント
  4. SQL ステートメントを開いてより多くの SQL テキストを表示します。

    
							SQL テキストの表示量を増やす

    パフォーマンスインサイトダッシュボードは、各 SQL ステートメントの最大 4,096 バイトまでを表示できます。

  5. (オプション) [Copy snippet (スニペットのコピー)] を選択して、表示された SQL ステートメントをコピーするか、[完全な SQL のダウンロード] を選択して、最大 DB エンジンの制限の SQL ステートメントをダウンロードします。

    注記

    SQL ステートメントをコピーまたはダウンロードするには、ポップアップブロッカーを無効にします。

Amazon RDS PostgreSQL DB インスタンスの SQL テキスト制限の設定

Amazon RDS PostgreSQL DB インスタンスでは、パフォーマンスインサイトダッシュボードに表示できる SQL テキストの制限を管理できます。

これを行うには、track_activity_query_size DB インスタンスパラメータを変更します。track_activity_query_size パラメータのデフォルト設定は 1,024 バイトです。

バイト数を増やすことで、パフォーマンスインサイトダッシュボードに表示される SQL テキストサイズを増大できます。パラメータの上限は 10,240 バイトです。track_activity_query_size DB インスタンスパラメータの詳細については、PostgreSQL ドキュメントで「ランタイム統計」を参照してください。

パラメータを変更するには、Amazon RDS PostgreSQL DB インスタンスに関連付けられているパラメータグループのパラメータ設定を変更します。

Amazon RDS PostgreSQL DB インスタンスでデフォルトのパラメータグループを使用している場合は、以下のステップを実行します。

  1. 該当する DB エンジンおよび DB エンジンバージョンの新しい DB インスタンスパラメータグループを作成します。

  2. 新しいパラメータグループにパラメータを設定します。

  3. 新しいパラメータグループを DB インスタンスに関連付けます。

DB インスタンスパラメータの設定の詳細については、「DB パラメータグループのパラメータの変更」を参照してください。