track_wal_io_timing
一个确定是否跟踪 WAL I/O 时间的参数
track_wal_io_timing 是一个 配置参数,用于跟踪 WAL I/O 调用时间。
track_wal_io_timing 已在 PostgreSQL 14 中添加。
默认值
track_wal_io_timing 的默认值为:off。
用法
track_wal_io_timing 跟踪 WAL 输入/输出操作的统计信息。
请注意,如果启用,track_wal_io_timing 会导致 PostgreSQL 在每次写入或同步 WAL 时查询操作系统以获取当前时间,这可能会在某些平台上产生显著的开销。
PostgreSQL 18 及更高版本
如果设置为 on,则可以通过 pg_stat_io 的以下列检索累积的统计信息:
extend_timeread_timewrite_timewriteback_time
PostgreSQL 17 及更早版本
如果设置为 on,则可以通过 pg_stat_wal 的以下列检索累积的统计信息:
wal_write_timewal_sync_time
按 PostgreSQL 版本详细信息
track_wal_io_timing (PostgreSQL 19)
| 设置 | off |
| 单位 | |
| 类别 | 统计信息 / 累积查询和索引统计信息 |
| 简短描述 | 收集 WAL I/O 活动的时间统计信息。 |
| 扩展描述 | |
| 上下文 | superuser |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | off |
| 重置值 | off |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
track_wal_io_timing (PostgreSQL 18)
| 设置 | off |
| 单位 | |
| 类别 | 统计信息 / 累积查询和索引统计信息 |
| 简短描述 | 收集 WAL I/O 活动的时间统计信息。 |
| 扩展描述 | |
| 上下文 | superuser |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | off |
| 重置值 | off |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
track_wal_io_timing (PostgreSQL 17)
| 设置 | off |
| 单位 | |
| 类别 | 统计信息 / 累积查询和索引统计信息 |
| 简短描述 | 收集 WAL I/O 活动的时间统计信息。 |
| 扩展描述 | |
| 上下文 | superuser |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | off |
| 重置值 | off |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
track_wal_io_timing (PostgreSQL 16)
| 设置 | off |
| 单位 | |
| 类别 | 统计信息 / 累积查询和索引统计信息 |
| 简短描述 | 收集 WAL I/O 活动的时间统计信息。 |
| 扩展描述 | |
| 上下文 | superuser |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | off |
| 重置值 | off |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
track_wal_io_timing (PostgreSQL 15)
| 设置 | off |
| 单位 | |
| 类别 | 统计信息 / 累积查询和索引统计信息 |
| 简短描述 | 收集 WAL I/O 活动的时间统计信息。 |
| 扩展描述 | |
| 上下文 | superuser |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | off |
| 重置值 | off |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
track_wal_io_timing (PostgreSQL 14)
| 设置 | off |
| 单位 | |
| 类别 | 统计 / 查询和索引统计信息收集器 |
| 简短描述 | 收集 WAL I/O 活动的时间统计信息。 |
| 扩展描述 | |
| 上下文 | superuser |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | off |
| 重置值 | off |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
变更历史
- PostgreSQL 18
- 累积信息现可通过
pg_stat_io和pg_stat_get_backend_io()访问(提交 6c349d83)
- 累积信息现可通过
- PostgreSQL 14
- 已添加(提交 ff99918c)
示例
启用 track_wal_io_timing 后 pg_stat_wal 的示例内容(PostgreSQL 17 及更早版本)
postgres=# SELECT * FROM pg_stat_wal\gx -[ RECORD 1 ]----+------------------------------ wal_records | 301882 wal_fpi | 135 wal_bytes | 18544842 wal_buffers_full | 603 wal_write | 633 wal_sync | 5 wal_write_time | 4.13 wal_sync_time | 219.9 stats_reset | 2021-03-09 11:06:01.842869+01
参考资料
- PostgreSQL 文档: track_wal_io_timing
