Hubert 'depesz' Lubaczewski:等待 PostgreSQL 18 - 允许在不重启的情况下更改 autovacuum_max_workers。
内容提要
2025年1月6日,Nathan Bossart提交补丁,允许动态调整autovacuum_max_workers而无需重启服务器。新增参数autovacuum_worker_slots控制启动时的工作槽数量,修改该参数需重启。设置不当会发出警告,现有工作者继续运行,直到数量低于设定值。这一改动增强了自动清理工作的灵活性。
关键要点
-
2025年1月6日,Nathan Bossart提交补丁,允许动态调整autovacuum_max_workers而无需重启服务器。
-
新增参数autovacuum_worker_slots控制启动时的工作槽数量,修改该参数需重启。
-
如果autovacuum_max_workers设置高于autovacuum_worker_slots,将发出警告,服务器只会启动到autovacuum_worker_slots数量的工作者。
-
如果autovacuum_max_workers设置低于当前运行的工作者数量,现有工作者将继续运行,但不会启动新工作者,直到运行数量低于设定值。
-
这一改动增强了自动清理工作的灵活性,允许在特定时间段内调整工作者数量。
-
可以在低负载时提升autovacuum_max_workers以增加自动清理工作,负载恢复后再降低该值。
延伸问答
autovacuum_max_workers的动态调整有什么新功能?
允许在不重启服务器的情况下动态调整autovacuum_max_workers。
autovacuum_worker_slots参数的作用是什么?
autovacuum_worker_slots控制服务器启动时保留的自动清理工作槽数量。
如果设置的autovacuum_max_workers超过autovacuum_worker_slots会发生什么?
会发出警告,服务器只会启动到autovacuum_worker_slots数量的工作者。
如何在低负载时提升autovacuum_max_workers?
可以在低负载时设置更高的autovacuum_max_workers,然后在负载恢复后降低该值。
现有的autovacuum工作者在数量超过新设置时会怎样?
现有工作者将继续运行,但不会启动新工作者,直到数量低于设定值。
这一改动对自动清理工作有什么影响?
增强了自动清理工作的灵活性,允许在特定时间段内调整工作者数量。