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
или в командной строке сервера; но настройку можно переопределить для отдельных таблиц, изменив параметры хранения таблицы.