问题:PostgreSQL 中的 autovacuum 中的 autovacuum_vacuum_cost_delay 是什么?

我正在尝试使用配置文件中的以下配置参数来调整 PostgreSQL 服务器:

autovacuum_freeze_max_age = 500000000
autovacuum_max_workers = 6
autovacuum_naptime = '15s'
autovacuum_vacuum_cost_delay = 0
maintenance_work_mem = '10GB'
vacuum_freeze_min_age = 10000000

我想了解autovacuum_vacuum_cost_delay的作用。我尝试在谷歌上搜索很多,但没有得到任何足以理解的东西。

解答

文档指的是vacuum_cost_delay,其中说:

超过成本限制时进程将休眠的时间量。

这是一个减慢自动清理速度的功能。每当一个 autovacuum worker 工作时(删除一个元组,读取一个块,......),它都会收集工作点。一旦这些点超过autovacuum_vacuum_cost_limit(默认为200),它就会暂停autovacuum_vacuum_cost_delay

原因是VACUUM占用资源比较多,所以默认是放慢的,希望不会影响正常运行。但是,如果 autovacuum 太慢,您最终可能会得到臃肿的表。

Logo

PostgreSQL社区为您提供最前沿的新闻资讯和知识内容

更多推荐