log_autovacuum_min_duration
一个用于记录执行时间超过特定阈值的自动清理操作的 GUC 参数
log_autovacuum_min_duration 是一个 配置参数,用于确定自动清理操作在多长时间后才会被记录下来。
log_autovacuum_min_duration 在 PostgreSQL 8.3 中被添加。
用法
如果设置为 -1(在 PostgreSQL 14 及更早版本中的默认值),则不会记录任何自动清理操作。
如果设置为 0,则会记录所有自动清理操作。
否则,将记录执行时间超过指定时间间隔的自动清理操作。
log_autovacuum_min_duration 可以设置为服务器范围的参数,或者作为单个关系的 存储参数(PostgreSQL 9.2 及更高版本)。
请注意,必须将 track_io_timing 设置为 on 才能记录 I/O 定时统计信息。
默认值
log_autovacuum_min_duration 的默认值为
- 10m(PostgreSQL 15 及之后)
- -1(PostgreSQL 8.3 至 PostgreSQL 14)
按 PostgreSQL 版本详细信息
log_autovacuum_min_duration (PostgreSQL 19)
| 设置 | 600000 |
| 单位 | 毫秒 |
| 类别 | 报告和日志记录 / 记录什么 |
| 简短描述 | 设置自动清理操作的最小执行时间,超过此时间的操作将被记录。 |
| 扩展描述 | -1 禁用记录自动清理操作。0 表示记录所有自动清理操作。 |
| 上下文 | sighup |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | -1 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | 600000 |
| 重置值 | 600000 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
log_autovacuum_min_duration (PostgreSQL 18)
| 设置 | 600000 |
| 单位 | 毫秒 |
| 类别 | 报告和日志记录 / 记录什么 |
| 简短描述 | 设置自动清理操作的最小执行时间,超过此时间的操作将被记录。 |
| 扩展描述 | -1 禁用记录自动清理操作。0 表示记录所有自动清理操作。 |
| 上下文 | sighup |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | -1 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | 600000 |
| 重置值 | 600000 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
log_autovacuum_min_duration (PostgreSQL 17)
| 设置 | 600000 |
| 单位 | 毫秒 |
| 类别 | 报告和日志记录 / 记录什么 |
| 简短描述 | 设置自动清理操作的最小执行时间,超过此时间的操作将被记录。 |
| 扩展描述 | 设置为零表示记录所有操作。设置为 -1 表示关闭自动清理日志记录。 |
| 上下文 | sighup |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | -1 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | 600000 |
| 重置值 | 600000 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
log_autovacuum_min_duration (PostgreSQL 16)
| 设置 | 600000 |
| 单位 | 毫秒 |
| 类别 | 报告和日志记录 / 记录什么 |
| 简短描述 | 设置自动清理操作的最小执行时间,超过此时间的操作将被记录。 |
| 扩展描述 | 设置为零表示记录所有操作。设置为 -1 表示关闭自动清理日志记录。 |
| 上下文 | sighup |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | -1 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | 600000 |
| 重置值 | 600000 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
log_autovacuum_min_duration (PostgreSQL 15)
| 设置 | 600000 |
| 单位 | 毫秒 |
| 类别 | 报告和日志记录 / 记录什么 |
| 简短描述 | 设置自动清理操作的最小执行时间,超过此时间的操作将被记录。 |
| 扩展描述 | 设置为零表示记录所有操作。设置为 -1 表示关闭自动清理日志记录。 |
| 上下文 | sighup |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | -1 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | 600000 |
| 重置值 | 600000 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
log_autovacuum_min_duration (PostgreSQL 14)
| 设置 | -1 |
| 单位 | 毫秒 |
| 类别 | 报告和日志记录 / 记录什么 |
| 简短描述 | 设置自动清理操作的最小执行时间,超过此时间的操作将被记录。 |
| 扩展描述 | 设置为零表示记录所有操作。设置为 -1 表示关闭自动清理日志记录。 |
| 上下文 | sighup |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | -1 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | -1 |
| 重置值 | -1 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
log_autovacuum_min_duration (PostgreSQL 13)
| 设置 | -1 |
| 单位 | 毫秒 |
| 类别 | 报告和日志记录 / 记录什么 |
| 简短描述 | 设置自动清理操作的最小执行时间,超过此时间的操作将被记录。 |
| 扩展描述 | 设置为零表示记录所有操作。设置为 -1 表示关闭自动清理日志记录。 |
| 上下文 | sighup |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | -1 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | -1 |
| 重置值 | -1 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
log_autovacuum_min_duration (PostgreSQL 12)
| 设置 | -1 |
| 单位 | 毫秒 |
| 类别 | 报告和日志记录 / 记录什么 |
| 简短描述 | 设置自动清理操作的最小执行时间,超过此时间的操作将被记录。 |
| 扩展描述 | 设置为零表示记录所有操作。设置为 -1 表示关闭自动清理日志记录。 |
| 上下文 | sighup |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | -1 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | -1 |
| 重置值 | -1 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
log_autovacuum_min_duration (PostgreSQL 11)
| 设置 | -1 |
| 单位 | 毫秒 |
| 类别 | 报告和日志记录 / 记录什么 |
| 简短描述 | 设置自动清理操作的最小执行时间,超过此时间的操作将被记录。 |
| 扩展描述 | 设置为零表示记录所有操作。设置为 -1 表示关闭自动清理日志记录。 |
| 上下文 | sighup |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | -1 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | -1 |
| 重置值 | -1 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
log_autovacuum_min_duration (PostgreSQL 10)
| 设置 | -1 |
| 单位 | 毫秒 |
| 类别 | 报告和日志记录 / 记录什么 |
| 简短描述 | 设置自动清理操作的最小执行时间,超过此时间的操作将被记录。 |
| 扩展描述 | 设置为零表示记录所有操作。设置为 -1 表示关闭自动清理日志记录。 |
| 上下文 | sighup |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | -1 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | -1 |
| 重置值 | -1 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
log_autovacuum_min_duration (PostgreSQL 9.6)
| 设置 | -1 |
| 单位 | 毫秒 |
| 类别 | 报告和日志记录 / 记录什么 |
| 简短描述 | 设置自动清理操作的最小执行时间,超过此时间的操作将被记录。 |
| 扩展描述 | 设置为零表示记录所有操作。设置为 -1 表示关闭自动清理日志记录。 |
| 上下文 | sighup |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | -1 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | -1 |
| 重置值 | -1 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
log_autovacuum_min_duration (PostgreSQL 9.5)
| 设置 | -1 |
| 单位 | 毫秒 |
| 类别 | 报告和日志记录 / 记录什么 |
| 简短描述 | 设置自动清理操作的最小执行时间,超过此时间的操作将被记录。 |
| 扩展描述 | 设置为零表示记录所有操作。设置为 -1 表示关闭自动清理日志记录。 |
| 上下文 | sighup |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | -1 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | -1 |
| 重置值 | -1 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
log_autovacuum_min_duration (PostgreSQL 9.4)
| 设置 | -1 |
| 单位 | 毫秒 |
| 类别 | 报告和日志记录 / 记录什么 |
| 简短描述 | 设置自动清理操作的最小执行时间,超过此时间的操作将被记录。 |
| 扩展描述 | 设置为零表示记录所有操作。设置为 -1 表示关闭自动清理日志记录。 |
| 上下文 | sighup |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | -1 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | -1 |
| 重置值 | -1 |
| 源文件 | |
| 源行 |
log_autovacuum_min_duration (PostgreSQL 9.3)
| 设置 | -1 |
| 单位 | 毫秒 |
| 类别 | 报告和日志记录 / 记录什么 |
| 简短描述 | 设置自动清理操作的最小执行时间,超过此时间的操作将被记录。 |
| 扩展描述 | 设置为零表示记录所有操作。设置为 -1 表示关闭自动清理日志记录。 |
| 上下文 | sighup |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | -1 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | -1 |
| 重置值 | -1 |
| 源文件 | |
| 源行 |
log_autovacuum_min_duration (PostgreSQL 9.2)
| 设置 | -1 |
| 单位 | 毫秒 |
| 类别 | 报告和日志记录 / 记录什么 |
| 简短描述 | 设置自动清理操作的最小执行时间,超过此时间的操作将被记录。 |
| 扩展描述 | 设置为零表示记录所有操作。设置为 -1 表示关闭自动清理日志记录。 |
| 上下文 | sighup |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | -1 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | -1 |
| 重置值 | -1 |
| 源文件 | |
| 源行 |
log_autovacuum_min_duration (PostgreSQL 9.1)
| 设置 | -1 |
| 单位 | 毫秒 |
| 类别 | 报告和日志记录 / 记录什么 |
| 简短描述 | 设置自动清理操作的最小执行时间,超过此时间的操作将被记录。 |
| 扩展描述 | 设置为零表示记录所有操作。设置为 -1 表示关闭自动清理日志记录。 |
| 上下文 | sighup |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | -1 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | -1 |
| 重置值 | -1 |
| 源文件 | |
| 源行 |
log_autovacuum_min_duration (PostgreSQL 9.0)
| 设置 | -1 |
| 单位 | 毫秒 |
| 类别 | 报告和日志记录 / 记录什么 |
| 简短描述 | 设置自动清理操作的最小执行时间,超过此时间的操作将被记录。 |
| 扩展描述 | 设置为零表示记录所有操作。设置为 -1 表示关闭自动清理日志记录。 |
| 上下文 | sighup |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | -1 |
| 最大值 | 2147483 |
| 枚举值 | |
| 启动值 | -1 |
| 重置值 | -1 |
| 源文件 | |
| 源行 |
log_autovacuum_min_duration (PostgreSQL 8.4)
| 设置 | -1 |
| 单位 | 毫秒 |
| 类别 | 报告和日志记录 / 记录什么 |
| 简短描述 | 设置自动清理操作的最小执行时间,超过此时间的操作将被记录。 |
| 扩展描述 | 设置为零表示记录所有操作。设置为 -1 表示关闭自动清理日志记录。 |
| 上下文 | sighup |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | -1 |
| 最大值 | 2147483 |
| 枚举值 | |
| 启动值 | -1 |
| 重置值 | -1 |
| 源文件 | |
| 源行 |
log_autovacuum_min_duration (PostgreSQL 8.3)
| 设置 | |
| 单位 | 毫秒 |
| 类别 | 报告和日志记录 / 记录什么 |
| 简短描述 | 设置自动清理操作的最小执行时间,超过此时间的操作将被记录。 |
| 扩展描述 | 设置为零表示记录所有操作。设置为 -1 表示关闭自动清理日志记录。 |
| 上下文 | sighup |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | -1 |
| 最大值 | 2147483 |
变更历史
- PostgreSQL 15
- 默认值从
-1更改为10m(提交 64da07c4)
- 默认值从
- PostgreSQL 9.2:
- PostgreSQL 8.3
- 添加(提交 ef23a774)
示例
为了演示 log_autovacuum_min_duration 的效果,创建一个表,并设置 storage_parameters 来触发少量插入数据后的自动清理操作。
postgres=# CREATE TABLE foo (id INT) WITH ( log_autovacuum_min_duration = 0, autovacuum_vacuum_insert_threshold = 5); CREATE TABLE postgres=# INSERT INTO foo VALUES (generate_series(1,10)); INSERT 0 10
这(假设自动清理守护进程当前未被占用)将在短时间内导致一个自动清理操作,该操作将被记录如下(当 track_io_timing 设置为默认的 off 时):
[2021-12-14 08:13:26 UTC] LOG: 00000: automatic vacuum of table "postgres.public.foo": index scans: 0
pages: 0 removed, 1 remain, 0 skipped due to pins, 0 skipped frozen
tuples: 0 removed, 10 remain, 0 are dead but not yet removable, oldest xmin: 740
index scan not needed: 0 pages from table (0.00% of total) had 0 dead item identifiers removed
avg read rate: 27.174 MB/s, avg write rate: 27.174 MB/s
buffer usage: 55 hits, 4 misses, 4 dirtied
WAL usage: 5 records, 4 full page images, 33264 bytes
system usage: CPU: user: 0.00 s, system: 0.00 s, elapsed: 0.00 s
当 [track_io_timing|]] 设置为 on 时
[2021-12-14 08:17:34 UTC] LOG: 00000: automatic vacuum of table "postgres.public.foo": index scans: 0
pages: 0 removed, 1 remain, 0 skipped due to pins, 0 skipped frozen
tuples: 0 removed, 30 remain, 0 are dead but not yet removable, oldest xmin: 751
index scan not needed: 0 pages from table (0.00% of total) had 0 dead item identifiers removed
I/O timings: read: 0.000 ms, write: 0.000 ms
avg read rate: 0.000 MB/s, avg write rate: 135.281 MB/s
buffer usage: 31 hits, 0 misses, 4 dirtied
WAL usage: 5 records, 5 full page images, 34920 bytes
system usage: CPU: user: 0.00 s, system: 0.00 s, elapsed: 0.00 s
参考资料
- PostgreSQL 文档: log_autovacuum_min_duration
