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

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

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

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

autovacuum (boolean) #

Управляет запуском демона автоматической очистки (autovacuum) сервера. По умолчанию этот параметр включен, однако для работы автоматической очистки также необходимо включить параметр track_counts. Значение этого параметра можно установить только в файле postgresql.conf или в командной строке сервера. Однако автоматическую очистку можно отключить для отдельных таблиц, изменив параметры хранения таблицы.

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

autovacuum_max_workers (integer) #

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

autovacuum_naptime (integer) #

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

autovacuum_vacuum_threshold (integer) #

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

autovacuum_vacuum_insert_threshold (integer) #

Определяет количество вставленных кортежей, необходимых для запуска операции VACUUM в любой таблице. По умолчанию используется значение 1000 кортежей. Если указано значение -1, автоочистка не будет запускать операцию 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) #

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

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

autovacuum_multixact_freeze_max_age (integer) #

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

Очистка мультитранзакций также позволяет удалить старые файлы из подкаталогов pg_multixact/members и pg_multixact/offsets, поэтому значение по умолчанию относительно низкое - 400 миллионов мультитранзакций. Этот параметр может быть установлен только при запуске сервера, но его значение может быть уменьшено для отдельных таблиц путем изменения параметров хранения таблицы. Дополнительную информацию см. в разделе Раздел 23.1.5.1.

autovacuum_vacuum_cost_delay (floating point) #

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

autovacuum_vacuum_cost_limit (integer) #

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