Перейти к основному содержимому

Автоматическая очистка

примечание

Эта страница переведена при помощи нейросети GigaChat.

Эти настройки управляют поведением функции автоматического удаления мусора. См. раздел «Демон автоматической очистки» для получения дополнительной информации. Обратите внимание, что многие из этих настроек могут быть переопределены на уровне отдельных таблиц; см. Параметры хранения.

autovacuum (boolean)

Управляет тем, должен ли сервер запускать демон автозагрузки автоматического удаления мусора. Это включено по умолчанию; однако, также должна быть включена функция учета количества операций, чтобы автоматическое удаление мусора работало. Этот параметр можно установить только в файле postgresql.conf или в командной строке сервера; однако, автоматическая очистка может быть отключена для отдельных таблиц путем изменения параметров хранения таблицы.

Обратите внимание, что даже когда этот параметр отключен, система запустит процессы автоматического удаления мусора, если это необходимо для предотвращения оборачивания идентификатора транзакции. См. раздел Предотвращение сбоев при оборачивании идентификаторов транзакций для получения дополнительной информации.

autovacuum_max_workers (integer)

Задает максимальное количество процессов autovacuum (кроме автозагрузчика autovacuum), которые могут выполняться одновременно. По умолчанию это три. Этот параметр можно задать только при запуске сервера.

autovacuum_naptime (integer)

Задает минимальную задержку между запусками autovacuum для любой заданной базы данных. В каждом цикле демон проверяет базу данных и выдает команды VACUUM и ANALYZE, если это необходимо для таблиц в этой базе данных. Если это значение указано без единиц измерения, оно принимается за секунды. По умолчанию одна минута (1min). Этот параметр может быть установлен только в файле postgresql.conf или в командной строке сервера.

autovacuum_vacuum_threshold (integer)

Задает минимальное количество обновленных или удаленных кортежей, необходимых для запуска VACUUM в любой таблице. По умолчанию используется 50 кортежей. Этот параметр можно установить только в файле postgresql.conf или в командной строке сервера; но настройка может быть переопределена для отдельных таблиц путем изменения параметров хранения таблицы.

autovacuum_vacuum_insert_threshold (integer)

Задает количество вставляемых кортежей, необходимое для запуска VACUUM в любой таблице. По умолчанию используется 1000 кортежей. Если указано -1, autovacuum не будет инициировать операцию VACUUM ни на одной из таблиц на основе количества вставок. Этот параметр можно установить только в файле postgresql.conf или в командной строке сервера; но настройку можно переопределить для отдельных таблиц, изменив параметры хранения таблицы.

autovacuum_analyze_threshold (integer)

Задает минимальное количество вставленных, обновленных или удаленных кортежей, необходимых для запуска ANALYZE в любой одной таблице. По умолчанию это 50 кортежей. Этот параметр можно задать только в файле postgresql.conf или в командной строке сервера; но настройку можно переопределить для отдельных таблиц путем изменения параметров хранения таблицы.

autovacuum_vacuum_scale_factor (floating point)

Задает долю размера таблицы, которую нужно добавить к autovacuum_vacuum_threshold при принятии решения о том, следует ли запускать VACUUM. По умолчанию используется значение 0,2 (20% от размера таблицы). Этот параметр можно установить только в файле postgresql.conf или в командной строке сервера; но настройка может быть переопределена для отдельных таблиц путем изменения параметров хранения таблицы.

autovacuum_vacuum_insert_scale_factor (floating point)

Задает долю размера таблицы, которую необходимо добавить к autovacuum_vacuum_insert_threshold при принятии решения о том, следует ли запустить VACUUM. По умолчанию используется значение 0,2 (20% от размера таблицы). Этот параметр можно установить только в файле postgresql.conf или в командной строке сервера; но настройка может быть переопределена для отдельных таблиц путем изменения параметров хранения таблицы.

autovacuum_analyze_scale_factor (floating point)

Задает долю размера таблицы, которая должна быть добавлена к autovacuum_analyze_threshold при определении того, следует ли инициировать ANALYZE. Значение по умолчанию составляет 0,1 (10% от размера таблицы). Этот параметр можно настроить только в файле postgresql.conf или в командной строке сервера; однако эту настройку можно переопределить для отдельных таблиц, изменив параметры хранения таблицы.

autovacuum_freeze_max_age (integer)

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

Вакуум также позволяет удалять старые файлы из подкаталога pg_xact, поэтому значение по умолчанию составляет относительно низкие 200 миллионов транзакций. Этот параметр можно установить только при запуске сервера, но его можно уменьшить для отдельных таблиц путем изменения параметров хранения таблиц. Для получения дополнительной информации см. раздел Предотвращение сбоев из-за оборачивания идентификаторов транзакций.

autovacuum_multixact_freeze_max_age (integer)

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

Вакуумная обработка multixacts также позволяет удалять старые файлы из подкаталогов pg_multixact/members и pg_multixact/offsets, что объясняет относительно низкий порог в 400 миллионов multixacts по умолчанию. Этот параметр можно установить только при запуске сервера, но его значение может быть уменьшено для отдельных таблиц путем изменения параметров хранения таблицы. Дополнительную информацию см. в разделе Multixacts и Wraparound.

autovacuum_vacuum_cost_delay (floating point)

Задает значение задержки затрат, которое будет использоваться в автоматических операциях VACUUM. Если указано -1, используется обычное значение vacuum_cost_delay. Если это значение указывается без единиц измерения, оно принимается за миллисекунды. Значение по умолчанию составляет 2 миллисекунды. Этот параметр можно задать только в файле postgresql.conf или в командной строке сервера; однако настройку можно переопределить для отдельных таблиц, изменив параметры хранения таблицы.

autovacuum_vacuum_cost_limit (integer)

Задает предельное значение стоимости, которое будет использоваться в автоматических операциях VACUUM. Если указано -1 (что является значением по умолчанию), используется обычное значение vacuum_cost_limit. Обратите внимание, что значение распределяется пропорционально между работающими рабочими процессами autovacuum, если их больше одного, так что сумма ограничений для каждого рабочего процесса не превышает значение этой переменной. Этот параметр можно задать только в файле postgresql.conf или в командной строке сервера; однако настройку можно переопределить для отдельных таблиц, изменив параметры хранения таблицы.