aurora_wait_report
此函数显示一段时间内的等待事件活动。
语法
aurora_wait_report([time])
参数
- 时间(可选)
-
以秒为单位的时间。默认为 10 秒。
返回类型
包含以下列的 SETOF 记录:
-
type_name – 等待类型名称
-
event_name – 等待事件名称
-
等待 – 等待次数
-
wait_time – 以毫秒为单位的等待时间
-
ms_per_wait – 按等待次数计算的平均毫秒数
-
waits_per_xact – 按一个事务数计算的平均等待次数
-
ms_per_xact – 按事务数计算的平均毫秒数
使用说明
此函数从与 PostgreSQL 9.6.6 及更高版本兼容的 Aurora PostgreSQL 版本 1.1 开始提供。
要使用此函数,您首先需要创建 Aurora PostgreSQL aurora_stat_utils
扩展,如下所示:
=>
CREATE extension aurora_stat_utils;
CREATE EXTENSION
有关可用的 urora PostgreSQL 扩展版本的更多信息,请参阅《Aurora PostgreSQL 发布说明》中的适用于 Amazon Aurora PostgreSQL 的扩展版本。
此函数通过将 aurora_stat_system_waits() 函数和 pg_stat_database PostgreSQL 统计信息视图中的两个统计信息数据快照进行比较来计算实例级等待事件。
有关 aurora_stat_system_waits()
和 pg_stat_database
的更多信息,请参阅 PostgreSQL 文档中的统计信息收集器
运行时,此函数会拍摄初始快照,等待指定的秒数,然后再拍摄第二个快照。此函数会比较两个快照并返回差异。此差异代表实例在该时间间隔内的活动。
在写入器实例上,此函数还显示已提交的事务数和 TPS(每秒事务数)。此函数返回实例级别的信息,包括实例上的所有数据库。
示例
此示例说明如何创建 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