vacuum_buffer_usage_limit
No restart — settable per sessionPostgreSQL 16+memory (kB/MB) — shared-buffer ring size
Size of the shared-buffer ring VACUUM and ANALYZE use, limiting cache eviction.
What it does
Added in PostgreSQL 16, this caps how much of shared_buffers a VACUUM/ANALYZE may use, via a small reusable 'ring' buffer. The cap stops a big vacuum from evicting your hot working set out of cache. A larger ring lets vacuum go faster at the cost of touching more of the cache.
How to tune it
The small default (2 MB in current PostgreSQL) protects the cache but can make a manual VACUUM slow. For an urgent one-off VACUUM you can raise it for that command (VACUUM (BUFFER_USAGE_LIMIT '64MB') tbl) to finish faster, accepting more cache churn.