PostgreSQL参数解析autovacuum_naptime

autovacuum_naptime 参数指定在任何给定数据库上运行 autovacuum 间隔的最小延迟。在每一轮中,守护进程都会检查数据库,并根据需要为该数据库中的表发出 VACUUM 和 ANALYZE 命令。

如果指定该参数时不使用单位,则以秒为单位。默认值为一分钟(1min)。此参数只能在 postgresql.conf 文件或数据库启动命令行中设置。

autovacuum_naptime 参数值:

  • 默认值:60
  • 最小值:1
  • 最大值:INT_MAX / 1000

在内核实现上,使用到该参数的场景有以下几处:

  1. AutoVacuum Launcher 守护进程启动一个工作进程时,会根据 autovacuum_naptime 参数,设置下一个工作进程的启动时间,通过 WaitLatch 等待超时。
  2. 启动工作进程前,会根据上一个工作进程的启动时间与当前时间进行对比,时间间隔必须超过 autovacuum_naptime 值,才能创建下一个工作进程。同时如果上一个工作进程耗时 autovacuum_naptime 都没有启动成功,并且一直处于启动中,就会触发一个告警信息,并取消该工作进程。
  3. 如果一个 database 最近(在 autovacuum_naptime 时间间隔内) 被工作进程处理过,那么将不会选择该数据库进行处理。

文章评论

0条评论