AutoVacuum - Tuning and Monitoring
summary
Postgres autovacuum often leaves tables and indexes bloated until a restart or restore masks the problem; a practical fix is autovacuum_cost_delay 20ms→2ms (Postgres 12) which cuts a real-life 18GB table vacuum from 81 minutes to 8, and custom per-table tuning (even down to 3.3 minutes in one test) restores responsiveness. Monitoring uses collectd+graphite+grafana+timescale, tracks pending writes, write efficiency, and idle in transaction = cluster event horizon, and enforces per-table thresholds because vacuum full (and repack) is the only way to remove middle-page bloat.
AI-written summary · about
chapters (9)
- 0:00Introduction
- 3:55Autovacuum tuning necessity
- 10:20Key autovacuum metrics
- 15:23Autovacuum settings overview
- 24:34Advanced monitoring tools
- 29:48Real-time autovacuum monitoring
- 34:01Hardware impact on autovacuum
- 40:27Table tuning strategies
- 43:19Q&A
related talks
32mOptimizing autovacuum: PostgreSQL’s vacuum cleaner
55mUnderstanding Autovacuum
49mUnderstanding and Fixing Autovacuum
48mThe Good, The Bad, and The Bloated: An Autovacuum Story
27mMaintaining Large Tables in PostgreSQL
25mUnderstanding & Managing Postgres Table Bloat
33mPostgreSQL Observed—and Explained
19mVacuuming Enhancements in PostgreSQL 18: Faster, Smarter, More Predictable
