Как настроить autovacuum в PostgreSQL | PGLens.

Как настроить autovacuum в PostgreSQL

Autovacuum очищает мертвые строки и обновляет статистику планировщика автоматически. Главный приём тюнинга – снизить порог запуска для крупных таблиц, чтобы вакуум проходил чаще и не накапливал отставание. Настраивается глобально в postgresql.conf или точечно на уровне таблицы.

Как настроить

1. Точечно для горячей таблицы (предпочтительнее глобальной правки):

ALTER TABLE orders SET (
autovacuum_vacuum_scale_factor = 0.01, -- доля изменённых строк, по умолч. 0.2
autovacuum_vacuum_threshold = 1000 -- базовый порог строк, по умолч. 50
);

2. Глобально, если вакуум не успевает за нагрузкой (postgresql.conf):

autovacuum_vacuum_cost_limit = 2000 -- лимит «стоимости» за цикл
-- применить: SELECT pg_reload_conf();

3. Проверьте результат:

SELECT relname, last_autovacuum, autovacuum_count
FROM pg_stat_user_tables ORDER BY last_autovacuum;

Регулярность срабатывания автовакуума и его влияние на нагрузку удобнее отслеживать в динамике – PGLens хранит историческую статистику активности Vacuum/Analyze и динамику размеров объектов, так что после изменения параметров видно, как настройка повлияла на поведение базы, без необходимости ручного сбора и сопоставления системной статистики.

Бесплатный 7‑дневный аудит PostgreSQL с PGLens

PGLens остается у вас для полноценного тестирования еще до 90 дней БЕСПЛАТНО