Hubert 'depesz' Lubaczewski:等待 PostgreSQL 18 - 允许在不重启的情况下更改 autovacuum_max_workers。

💡 原文英文,约500词,阅读约需2分钟。
📝

内容提要

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工作者在数量超过新设置时会怎样?

现有工作者将继续运行,但不会启动新工作者,直到数量低于设定值。

这一改动对自动清理工作有什么影响?

增强了自动清理工作的灵活性,允许在特定时间段内调整工作者数量。

➡️

继续阅读