aurora_wait_report
この関数は、期間中の待機イベントアクティビティを表示します。
構文
aurora_wait_report([time])
引数
- 時間 (オプション)
-
秒単位の時間。デフォルトは 10 秒です。
戻り型
次の列を含む SETOF レコード。
type_name — 待機タイプ名
event_name — 待機イベント名
wait — 待機数
wait_time — ミリ秒単位の待機時間
ms_per_wait — 待機数による平均ミリ秒
waits_per_xact — 1 トランザクションの数による平均待機数
ms_per_wait — 待機数による平均ミリ秒
使用に関する注意事項
この関数は、PostgreSQL 9.6.6 以上のバージョンと互換性がある Aurora PostgreSQL リリース 1.1 で使用できます。
この関数を使用するには、まず、次のように Aurora PostgreSQL aurora_stat_utils
拡張機能を作成する必要があります。
=>
CREATE extension aurora_stat_utils;
CREATE EXTENSION
使用可能な Aurora PostgreSQL 拡張機能バージョンの詳細については、『Aurora PostgreSQL のリリースノート』の「Amazon Aurora PostgreSQL の拡張機能バージョン」を参照してください。
この関数は、aurora_stat_system_waits() 関数と pg_stat_database PostgreSQL 統計ビューからの統計データの 2 つのスナップショットを比較して、インスタンスレベルの待機イベントを計算します。
aurora_stat_system_waits()
と pg_stat_database
の詳細については、『PostgreSQL ドキュメント』の「統計コレクター
この関数を実行すると、最初のスナップショットを取得し、指定された秒数だけ待ってから、2 番目のスナップショットを取得します。この関数は 2 つのスナップショットを比較し、差を返します。この差は、その時間間隔におけるインスタンスのアクティビティを表します。
ライターインスタンスでは、この関数はコミットされたトランザクションの数と TPS (1 秒あたりのトランザクション) も表示します。この関数は、インスタンスレベルで情報を返し、インスタンス上のすべてのデータベースを含みます。
例
この例は、aurora_stat_utils 拡張機能を作成して、aurora_wait_report 関数を使用できるようにする方法を示しています。
=>
CREATE extension aurora_stat_utils;
CREATE EXTENSION
この例は、10 秒間の待機レポートをチェックする方法を示しています。
=>
SELECT * FROM aurora_wait_report();
NOTICE: committed 34 transactions in 10 seconds (tps 3) type_name | event_name | waits | wait_time | ms_per_wait | waits_per_xact | ms_per_xact -----------+-------------------+-------+-----------+-------------+----------------+------------- Client | ClientRead | 26 | 30003.00 | 1153.961 | 0.76 | 882.441 Activity | WalWriterMain | 50 | 10051.32 | 201.026 | 1.47 | 295.627 Timeout | PgSleep | 1 | 10049.52 | 10049.516 | 0.03 | 295.574 Activity | BgWriterHibernate | 1 | 10048.15 | 10048.153 | 0.03 | 295.534 Activity | AutoVacuumMain | 18 | 9941.66 | 552.314 | 0.53 | 292.402 Activity | BgWriterMain | 1 | 201.09 | 201.085 | 0.03 | 5.914 IO | XactSync | 15 | 25.34 | 1.690 | 0.44 | 0.745 IO | RelationMapRead | 12 | 0.54 | 0.045 | 0.35 | 0.016 IO | WALWrite | 84 | 0.21 | 0.002 | 2.47 | 0.006 IO | DataFileExtend | 1 | 0.02 | 0.018 | 0.03 | 0.001
この例は、60 秒間の待機レポートをチェックする方法を示しています。
=>
SELECT * FROM aurora_wait_report(60);
NOTICE: committed 1544 transactions in 60 seconds (tps 25) type_name | event_name | waits | wait_time | ms_per_wait | waits_per_xact | ms_per_xact -----------+------------------------+---------+-----------+-------------+----------------+------------- Lock | transactionid | 6422 | 477000.53 | 74.276 | 4.16 | 308.938 Client | ClientRead | 8265 | 270752.99 | 32.759 | 5.35 | 175.358 Activity | CheckpointerMain | 1 | 60100.25 | 60100.246 | 0.00 | 38.925 Timeout | PgSleep | 1 | 60098.49 | 60098.493 | 0.00 | 38.924 Activity | WalWriterMain | 296 | 60010.99 | 202.740 | 0.19 | 38.867 Activity | AutoVacuumMain | 107 | 59827.84 | 559.139 | 0.07 | 38.749 Activity | BgWriterMain | 290 | 58821.83 | 202.834 | 0.19 | 38.097 IO | XactSync | 1295 | 55220.13 | 42.641 | 0.84 | 35.764 IO | WALWrite | 6602259 | 47810.94 | 0.007 | 4276.07 | 30.966 Lock | tuple | 473 | 29880.67 | 63.173 | 0.31 | 19.353 LWLock | buffer_mapping | 142 | 3540.13 | 24.930 | 0.09 | 2.293 Activity | BgWriterHibernate | 290 | 1124.15 | 3.876 | 0.19 | 0.728 IO | BufFileRead | 7615 | 618.45 | 0.081 | 4.93 | 0.401 LWLock | buffer_content | 73 | 345.93 | 4.739 | 0.05 | 0.224 LWLock | lock_manager | 62 | 191.44 | 3.088 | 0.04 | 0.124 IO | RelationMapRead | 72 | 5.16 | 0.072 | 0.05 | 0.003 LWLock | ProcArrayLock | 1 | 2.01 | 2.008 | 0.00 | 0.001 IO | ControlFileWriteUpdate | 2 | 0.03 | 0.013 | 0.00 | 0.000 IO | DataFileExtend | 1 | 0.02 | 0.018 | 0.00 | 0.000 IO | ControlFileSyncUpdate | 1 | 0.00 | 0.000 | 0.00 | 0.000