Параметры конфигурации автоматической очистки

Этот документ описывает параметры конфигурации в категории «Автоматическая очистка».

Внимание!
Для обеспечения стабильности и безопасности системы ручное изменение этих параметров должно выполняться с крайней осторожностью.

autovacuum


Включает или отключает фоновый процесс запуска autovacuum.

  • Этот параметр отключен по умолчанию. Однако для корректной работы autovacuum необходимо также включить track_counts. Если track_counts установлен в off, параметр autovacuum не будет действовать самостоятельно.
  • Autovacuum можно отключить для отдельных таблиц, изменив параметры хранения таблицы.
  • Примечание: Даже если этот параметр отключен, система всё равно запускает процессы autovacuum при необходимости для предотвращения переполнения идентификаторов транзакций.
Тип данных Значение по умолчанию Область применения
boolean off master; system; reload

autovacuum_analyze_scale_factor


Задаёт долю размера таблицы, добавляемую к autovacuum_analyze_threshold при определении необходимости запуска ANALYZE.

  • Значение по умолчанию — 0.1 (10% размера таблицы). Это значение можно переопределить для отдельных таблиц, изменив параметры хранения таблицы.
Тип данных Значение по умолчанию Диапазон Область применения
вещественное 0.1 0.0 ~ 100.0 segments; session; reload

autovacuum_analyze_threshold


Задаёт минимальное количество вставленных, обновлённых или удалённых кортежей в таблице, при превышении которого запускается ANALYZE.

  • Этот порог можно переопределить для отдельных таблиц, изменив параметры хранения таблицы.
Тип данных Значение по умолчанию Диапазон Область применения
int 50 0 ~ INT_MAX segments; system; reload

autovacuum_freeze_max_age


Определяет максимальный возраст (в транзакциях), которого может достичь relfrozenxid таблицы, прежде чем будет принудительно запущена VACUUM для предотвращения переполнения идентификаторов транзакций.

  • Примечание: Даже если autovacuum отключён, система запускает процессы autovacuum для предотвращения переполнения.
  • Очистка также позволяет удалять старые файлы из подкаталога pg_xact, поэтому значение по умолчанию установлено относительно низким — 200 миллионов транзакций.
  • Этот параметр можно задать только при запуске сервера. Однако его можно уменьшить для отдельных таблиц через параметры хранения таблиц.
Тип данных Значение по умолчанию Диапазон Область применения
int 200000000 100000 ~ 200000000 segments; system; restart

autovacuum_max_workers


Задаёт максимальное количество одновременно работающих процессов-исполнителей autovacuum (исключая процесс-запускатель autovacuum).

  • Этот параметр можно задать только при запуске сервера.
Тип данных Значение по умолчанию Диапазон Область применения
int 3 1 ~ 262143 segments; system; restart

autovacuum_multixact_freeze_max_age


Определяет максимальный возраст (в мульти-транзакциях), которого может достичь relminmxid таблицы, прежде чем будет принудительно запущена VACUUM для предотвращения переполнения идентификаторов мульти-транзакций.

  • Примечание: Даже если autovacuum отключён, система запускает процессы autovacuum для предотвращения переполнения мульти-транзакций.
  • Очистка мульти-транзакций также позволяет удалять старые файлы из подкаталогов pg_multixact/members и pg_multixact/offsets, поэтому значение по умолчанию установлено относительно низким — 400 миллионов мульти-транзакций.
  • Этот параметр можно задать только при запуске сервера. Однако его можно уменьшить для отдельных таблиц через параметры хранения таблиц.
Тип данных Значение по умолчанию Диапазон Область применения
int 400000000 10000 ~ 2000000000 segments; system; restart

autovacuum_naptime


При включённом параметре autovacuum задаёт минимальную задержку (в секундах) между запусками autovacuum на любой базе данных.

  • Во время каждого цикла autovacuum фоновый процесс проверяет базы данных и при необходимости выполняет команды VACUUM или ANALYZE на основе системных каталогов и вспомогательной статистики.
Тип данных Значение по умолчанию Диапазон Область применения
int 60 1 ~ (INT_MAX/1000) master; system; restart

autovacuum_vacuum_cost_delay


Задаёт значение задержки стоимости (в миллисекундах), используемое в автоматических операциях VACUUM.

  • Если указано vacuum_cost_delay, используется его значение.
  • Если единица измерения не указана, значение интерпретируется как миллисекунды. Значение по умолчанию — 2.
  • Это настройку можно переопределить для отдельных таблиц, изменив параметры хранения таблицы.
Тип данных Значение по умолчанию Диапазон Область применения
вещественное 2 -1 ~ 100 segments; system; reload

autovacuum_vacuum_cost_limit


Задаёт предел стоимости, используемый в автоматических операциях VACUUM.

  • Если указано -1 (значение по умолчанию), используется значение vacuum_cost_limit.
  • Примечание: Это значение пропорционально распределяется между текущими работающими процессами-исполнителями autovacuum (если активно несколько процессов), так что сумма индивидуальных лимитов не превышает этого значения.
  • Эту настройку можно переопределить для отдельных таблиц, изменив параметры хранения таблицы.
Тип данных Значение по умолчанию Диапазон Область применения
int -1 -1 ~ 10000 segments; system; reload

autovacuum_vacuum_scale_factor


Задаёт долю размера таблицы, добавляемую к autovacuum_vacuum_threshold при определении необходимости запуска VACUUM.

  • Значение по умолчанию — 0.2 (20% размера таблицы).
  • Эту настройку можно переопределить для отдельных таблиц, изменив параметры хранения таблицы.
Тип данных Значение по умолчанию Диапазон Область применения
вещественное 0.2 0.0 ~ 1.0 segments; system; reload

autovacuum_vacuum_threshold


Задаёт минимальное количество обновлённых или удалённых кортежей в таблице, при превышении которого запускается VACUUM.

  • Этот порог можно переопределить для отдельных таблиц, изменив параметры хранения таблицы.
Тип данных Значение по умолчанию Диапазон Область применения
int 50 1 ~ INT_MAX segments; system; reload

log_autovacuum_min_duration


Записывает в лог каждое действие autovacuum, если его выполнение занимает не менее указанного времени (в миллисекундах).

  • Установка этого параметра в 0 включает логирование всех действий autovacuum.
  • -1 (значение по умолчанию) отключает логирование действий autovacuum.
  • Например, установка в 1000 записывает в лог все операции autovacuum и analyze, выполняющиеся 1 секунду и дольше.
  • Кроме того, при установке этого параметра в любое значение, отличное от -1, в лог записывается сообщение, если действие autovacuum пропущено из-за конфликта блокировок или удаления отношения в процессе выполнения.
  • Включение этого параметра полезно для мониторинга активности autovacuum.
  • Эту настройку можно переопределить для отдельных таблиц, изменив параметры хранения таблицы.
Тип данных Значение по умолчанию Диапазон Область применения
int -1 -1 ~ INT_MAX segments; system; reload


track_counts


Включает сбор статистики о деятельности базы данных.

Тип данных Значение по умолчанию Область применения
boolean true master; session; reload; superuser