PostgreSQL参数解析autovacuum_naptime
autovacuum_naptime 参数指定在任何给定数据库上运行 autovacuum 间隔的最小延迟。在每一轮中,守护进程都会检查数据库,并根据需要为该数据库中的表发出 VACUUM 和 ANALYZE 命令。
如果指定该参数时不使用单位,则以秒为单位。默认值为一分钟(1min)。此参数只能在 postgresql.conf 文件或数据库启动命令行中设置。
autovacuum_naptime 参数值:
- 默认值:60
- 最小值:1
- 最大值:INT_MAX / 1000
在内核实现上,使用到该参数的场景有以下几处:
- AutoVacuum Launcher 守护进程启动一个工作进程时,会根据 autovacuum_naptime 参数,设置下一个工作进程的启动时间,通过 WaitLatch 等待超时。
- 启动工作进程前,会根据上一个工作进程的启动时间与当前时间进行对比,时间间隔必须超过 autovacuum_naptime 值,才能创建下一个工作进程。同时如果上一个工作进程耗时 autovacuum_naptime 都没有启动成功,并且一直处于启动中,就会触发一个告警信息,并取消该工作进程。
- 如果一个 database 最近(在 autovacuum_naptime 时间间隔内) 被工作进程处理过,那么将不会选择该数据库进行处理。
文章评论
共0条评论