试图让 Postgresql 保持表更清洁,但是即使在调整资源限制之后,它似乎也几乎没有跟上。
即使设置后
ALTER TABLE veryactivetable SET (autovacuum_vacuum_threshold = 10000);
veryactivetable 的 pg_stat_user_tables 返回 63356 n_dead_tup 并且 last_autoanalyze 和 last_autovacuum 超过 24 小时
posgresql.conf 设置:
shared_buffers = 7680MB
work_mem = 39321kB
maintenance_work_mem = 1920MB
vacuum_cost_delay = 0
vacuum_cost_page_hit = 1000
vacuum_cost_page_miss = 1000
vacuum_cost_page_dirty = 2000
vacuum_cost_limit = 7000
autovacuum = on
log_autovacuum_min_duration = 0
autovacuum_max_workers = 10
autovacuum_naptime = 10s
autovacuum_vacuum_threshold = 50
autovacuum_analyze_threshold = 50
autovacuum_vacuum_scale_factor = 0.05
autovacuum_analyze_scale_factor = 0.05
autovacuum_freeze_max_age = 200000000
autovacuum_vacuum_cost_delay = 50ms
autovacuum_vacuum_cost_limit = 7000