PostgreSQL 中 autovacuum 中的 autovacuum_vacuum_cost_delay 是什么?
What is autovacuum_vacuum_cost_delay in autovacuum in PostgreSQL?
我正在尝试使用配置文件中的以下配置参数调整 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
的作用。我试着在 google 上搜索了很多,但没有找到足够好的东西来理解。
The documentation refers to vacuum_cost_delay
,表示:
The amount of time that the process will sleep when the cost limit has been exceeded.
这是一个减慢 autovacuum 的功能。每当 autovacuum worker 工作时(删除一个元组,读取一个块,......),它收集工作点。一旦这些点超过 autovacuum_vacuum_cost_limit
(默认为 200),它就会暂停
autovacuum_vacuum_cost_delay
.
原因是VACUUM
使用了很多资源,所以默认放慢速度,希望不会影响正常操作。但是,如果 autovacuum 太慢,您最终可能会得到臃肿的表格。
我正在尝试使用配置文件中的以下配置参数调整 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
的作用。我试着在 google 上搜索了很多,但没有找到足够好的东西来理解。
The documentation refers to vacuum_cost_delay
,表示:
The amount of time that the process will sleep when the cost limit has been exceeded.
这是一个减慢 autovacuum 的功能。每当 autovacuum worker 工作时(删除一个元组,读取一个块,......),它收集工作点。一旦这些点超过 autovacuum_vacuum_cost_limit
(默认为 200),它就会暂停
autovacuum_vacuum_cost_delay
.
原因是VACUUM
使用了很多资源,所以默认放慢速度,希望不会影响正常操作。但是,如果 autovacuum 太慢,您最终可能会得到臃肿的表格。