Подсказки для настройки параметров автоочистки
В таблице ниже перечислены типичные проблемы и методы их решения.
Параметр | Рекомендуется |
---|---|
Автоочистка срабатывает недостаточно часто | |
autovacuum_vacuum_scale_factor | Снизить порог, чтобы чаще запускать очистку. Полезно для больших таблиц с большим количеством обновлений/удалений |
autovacuum_vacuum_insert_scale_factor | Снизить порог, чтобы чаще запускать очистку для больших таблиц с большим количеством вставок |
Очистка происходит слишком медленно | |
autovacuum_vacuum_cost_delay | Уменьшить продолжительность паузы «вежливого» режима, чтобы ускорить очистку |
autovacuum_vacuum_cost_limit | Увеличить объем порции «вежливого» режима до наступления паузы, уменьшая частоту пауз и ускоряя очистку |
autovacuum_max_workers | Увеличить, чтобы запускать больше параллельных обработчиков автоочистки при необходимости |
shared_buffers | Увеличить объем кеша в разделяемой памяти, если есть ресурсы. Кеширование блоков ускорит очистку |
autovacuum_work_mem | Увеличить, чтобы расширить в каждом обработчике автоочистки буфер в памяти для хранения списка устаревших записей. -1 – использовать maintenance_work_mem |
maintenance_work_mem | Задает размер буфера для списка устаревших записей, если autovacuum_work_mem = -1 |
max_parallel_maintenance_workers | Увеличить количество индексов, одновременно обрабатываемых командой VACUUM в параллельном режиме (не автоочистка) |
Очистка не очищает устаревшие записи | |
statement_timeout | Настроить, чтобы автоматически завершать длительно выполняемые запросы по таймауту |
idle_in_transaction_session_timeout | Настроить, чтобы автоматически завершать по таймауту бездействующие сессии с открытой транзакцией |
hot_standby_feedback | В Pangolin по умолчанию on - реплика отправляет лидеру отзывы о выполняемых запросах, обновляет отметку для удержания версий. Если реплика не относится к кластерной конфигурации и часто отстает, можно рассмотреть выключени е hot_standby_feedback на этой реплике |
vacuum_defer_cleanup_age | Настроить на лидере, чтобы отложить очистку версий строк до тех пор, пока не пройдет указанное количество транзакций. Позволяет увеличить окно выполнения без возникновения конфликтов для запросов на реплике при отключенном hot_standby_feedback |
old_snapshot_threshold | Настроить, чтобы разрешить очистку версий записей, которые могли бы понадобиться слишком старым снимкам (старше указанного времени) |