记录 autovacuum 和 vacuum 活动
根据 rds.force_autovacuum_logging_level
参数中指定的级别,有关 autovacuum 活动的信息将发送到 postgresql.log
。以下是此参数允许的值以及该值为默认设置的 PostgreSQL 版本:
-
disabled
(PostgreSQL 10、PostgreSQL 9.6) -
debug5
,debug4
,debug3
,debug2
,debug1
-
info
(PostgreSQL 12、PostgreSQL 11) -
notice
-
warning
(PostgreSQL 13 及更高版本) -
error
、日志、fatal
、panic
rds.force_autovacuum_logging_level
与 log_autovacuum_min_duration
参数结合使用。log_autovacuum_min_duration
参数的值为阈值(以毫秒为单位),超出该值后将记录 autovacuum 操作。设置为 -1
不会记录任何内容,而设置 0 将记录所有操作。和 rds.force_autovacuum_logging_level
一样,log_autovacuum_min_duration
的默认值取决于版本,如下所示:
-
10000 ms
- PostgreSQL 14、PostgreSQL 13、PostgreSQL 12 和 PostgreSQL 11 -
(empty)
- PostgreSQL 10 和 PostgreSQL 9.6 没有默认值
建议您将 rds.force_autovacuum_logging_level
设置为 WARNING
。我们还建议您将 log_autovacuum_min_duration
设置为 1000 到 5000 之间的值。设置为 5000 的记录活动耗时将超过 5000 毫秒。如果由于冲突锁定或并行删除关系跳过了 autovacuum 操作,则并非 -1 的任何其他设置也会记录消息。有关更多信息,请参阅 PostgreSQL 文档中的 Automatic Vacuuming
要对问题进行故障排除,可以将 rds.force_autovacuum_logging_level
参数更改为调试级别之一,从 debug1
到最高 debug5
以获取最详细的信息。我们建议您在短时间内使用调试设置,并且仅用于故障排除目的。要了解更多信息,请参阅 PostgreSQL 文档中的何时记录
注意
PostgreSQL 允许 rds_superuser
账户查看 pg_stat_activity
中的 Autovacuum 会话。例如,您可识别并结束阻止命令运行或运行速度慢于手动发出的 vacuum 命令的 Autovacuum 会话。