Performance Diagnostic#

パフォーマンス診断ダッシュボードは、待機イベントを監視することにより、Postgresインスタンスのデータベースパフォーマンスを分析します。診断グラフを表示するために、PEMはEDB待機状態モジュールによって収集されたデータを使用します。 EDB待機状態の詳細については、 EDB wait states を参照してください。

複数のレベルで待機状態データを分析するには、選択したデータを絞り込みます。グラフの上位レベルで選択したデータは、下位レベルに設定されます。

注釈

パフォーマンス診断ダッシュボードは、EDB待機状態モジュールが利用可能なすべてのPostgresバリアントとバージョンで利用できます。

前提条件#

  • EDB待機状態パッケージのインストール

    -  PostgreSQLの場合、 `EDB repositories <https://repos.enterprisedb.com/>`_ を参照してください。
    
    -  EDB Postgres Advanced Serverの場合、 :ref:`EDB wait states </pg_extensions/wait_states/installing/>` を参照してください。
    
  • EDB Postgres Advanced ServerのEDB待機状態モジュールをインストールした後 1. postgresql.conf ファイルにライブラリのリストを構成します。

shared_preload_libraries = $libdir/edb_wait_states
  1. データベースサーバーを再起動します。 3. メンテナンスデータベースに次の拡張機能を作成します。

CREATE EXTENSION edb_wait_states;
  • スーパーユーザー権限のないユーザーとしてパフォーマンス診断ダッシュボードにアクセスする場合は、ユーザーが接続またはログインしているサーバーに基づいて、特定の ログインロール をユーザーに付与する必要があります。

  • PEMサーバーにログインしているユーザーこの例ではtest1 にpem_comp_performance_diagnostic ロールを付与します。

GRANT pem_comp_performance_diagnostic TO test1;
  • edb_wait_states のすべての機能に対するpg_monitor ロールとEXECUTE 特権をデータベースユーザーこの例ではtest2 に付与します。 test2 ユーザーは、EDB待機状態でデータベースサーバーに接続しています。

# Grant `pg_monitor` role
GRANT pg_monitor TO test2;

# Grant `Execute` privilege on all functions
GRANT EXECUTE ON FUNCTION edb_wait_states_sessions TO test2;
GRANT EXECUTE ON FUNCTION edb_wait_states_data TO test2;
GRANT EXECUTE ON FUNCTION edb_wait_states_queries TO test2;
GRANT EXECUTE ON FUNCTION edb_wait_states_samples TO test2;
GRANT EXECUTE ON FUNCTION edb_wait_states_purge TO test2;

前提条件が満たされていない場合、パフォーマンス診断ダッシュボードにアクセスするとエラーが表示されます。

パフォーマンス診断ダッシュボードを使用する#

Performance Diagnosticダッシュボードを開くには、PEMクライアントで Tools > Server > Performance Diagnostic を選択します。

Performance Diagnostic dashboard

Performance Diagnostic dashboard#

デフォルトでは、上部のパフォーマンス診断グラフは、現在の日時から開始して、過去1時間のデータを取得します。このグラフは、アクティブなセッションの数を含む時系列を示しています。この時系列の各ポイントは、過去15秒間の待機イベントとCPU使用量の合計を表します。これらのセッションは、waitイベントを待機しているか、特定の時点でCPUを使用している可能性があります。この時系列は、EDB Wait States拡張機能によって収集された待機イベントサンプルに基づいて生成されます。

新しいブラウザータブでパフォーマンス診断ダッシュボードを開くには、 Preferences > Open in New Browser Tab? を選択します。

パフォーマンス診断ダッシュボード#

  • 最初のグラフには、選択した期間でアクティブなセッションの数と待機イベントタイプが表示されます。最初のグラフの期間を変更して、特定の期間のデータを分析できます。

デフォルトでは、最初のグラフの期間選択は15分です。持続時間は1時間まで延長できます。グラフで期間を表示するには、 Last リストから期間を選択します。指定した日付と時刻のデータを表示するには、 Until リストから日付と時刻を選択します。

  • 次のセクションでは、最初のグラフで選択した期間に基づいて、次のグラフをプロットします。

  • ドーナツグラフ - 最初のグラフでの期間選択に応じて、待機イベントタイプの合計とCPU使用率を表示します。このグラフは、これらのセッションがイベントの待機に費やした時間をより深く理解できます。

    • 折れ線グラフ - 各ポイントがサンプル時間のアクティブなセッションを表す時系列をプロットします。

各待機イベントタイプとCPU使用率をより明確に区別するために、各待機イベントタイプのグラフは別の色で表示されます。

折れ線グラフの時間を選択して、待機イベントを分析します。すべてのグラフで待機イベントタイプを表示または非表示にするには、グラフの凡例を選択します。分析する待機イベントタイプのみを表示できると、分析が簡単になります。

  • 3番目のセクションには、2番目のグラフで選択した期間に基づいて、パフォーマンス診断ダッシュボードに待機イベントの詳細が表示されます。 2つのタブに待機イベントの詳細が表示されます。

  • Overview タブには、クエリID、合計CPUイベント、CPU使用率、待機イベント、および選択した時間間隔の実行数を含む上位SQLクエリのリストが表示されます。これらのSQLクエリーは4つのカテゴリにグループ化されています。

    • 待機イベント別の上位クエリー - 待機状態で最も長い時間を費やした選択したサンプル時間のすべてのセッションのクエリーをリストします。クエリID、クエリ、合計待機イベント、パーセンテージでの待機時間、待機イベント、および実行数と、そのクエリを実行したユーザーの数がデータベースの数で表示されます。

    • CPU使用率別の上位クエリ -選択したサンプル時間のすべてのセッションで、最もCPU時間を使用したクエリーをリストします。クエリID、クエリ、合計CPUイベント、CPU使用率、待機イベント、および実行数と、データベースの数でそのクエリを実行したユーザーの数が表示されます。テーブルのデータは、CPUイベントの数の降順です。

    • 待機イベント別のトップユーザー - 選択したサンプル時間のすべてのセッションで、クエリが待機状態で最も長い時間を費やしたユーザーをリストします。ユーザー名、データベース名、合計待機イベント、待機時間の割合、待機イベント、および待機状態で最も長い時間を費やしたクエリーの数が表示されます。

    • CPU使用率によるトップユーザー - すべてのユーザーのリストクエリが最も多くのCPU時間を使用した選択したサンプル時間のセッション。ユーザー名、データベース名、合計CPUイベント、CPU使用率、待機イベント、および最も多くのCPU時間を使用したクエリーの数が表示されます。

  • Sample Selection タブには、選択したものの待機イベントの詳細が表示されます。 2番目のグラフのサンプル時間。待機イベントは次のようにグループ化されています。

  • Queries - クエリIDと選択したサンプル時間にクエリを実行したセッション数とともにクエリをリストします。任意の行の目を選択して、そのクエリに関する詳細を示すウィンドウを表示します。詳細については、 クエリー情報 を参照してください。

    • Users - クエリを実行したユーザーによってグループ化された待機イベントの詳細と、クエリのイベント数と実行数をリストします。

    • Waits - リスト選択したサンプル時間の各待機イベントタイプに属する待機イベントの数。両方のタブの下の行に表示されるデータをフィルタリングできます。列ヘッダーを選択して、データをアルファベット順に並べ替えることもできます。

クエリー情報#

クエリ情報ウィンドウを開くには、 Sample Selection タブの下の Queries グループの任意の行で目を選択します。このウィンドウには、 Query information セクションに、選択したサンプル時間でのクエリIDとそれに対応するセッションIDがリストに表示されます。分析するデータを含む選択したクエリの セッションID リストを選択できます。選択したセッションIDとクエリIDに対応する詳細が表示されます。 クエリ情報 テーブルには、 SQLクエリーも表示されます。

Wait Event locations セクションには、選択したセッションIDとクエリIDの待機イベントタイプの合計数が表示されます。 2種類のグラフが表示されます。

  • ドーナツグラフ - カテゴリデータの割合を示します。

  • タイムライン棒グラフ - 時間の経過とともに待機イベントタイプの数の傾向を視覚化します。

区別するために、各待機イベントタイプは棒グラフの異なる色で表されます。

Performance Diagnostic - Query dashboard

Performance Diagnostic - Query dashboard#

Wait events セクションには、クエリの実行中に発生したすべての待機イベントを表示するテーブルがあります。待機イベントの数の降順にデータを表示します。 2番目のテーブルには、クエリ実行全体の期間に発生したサンプル時間と待機イベントが表示されます。これにより、一定の期間にわたってクエリ実行中の待機イベントを分析できます。また、そのクエリIDとセッションIDのEDB Wait States拡張機能によって収集された実際のサンプルも表示します。