19.11. Фоновая заморозка #

Эти параметры управляют поведением механизма фоновой заморозки. За дополнительными сведениями обратитесь к Разделу 24.2.

enable_background_freezer (boolean) #

Включает или отключает отправку сообщений рабочему процессу фоновой заморозки через UDP-сокет. Этот параметр конфигурации можно установить в файле postgresql.conf или это может сделать суперпользователь в рамках сеанса. Значение по умолчанию — off.

bgfreezer_pages_per_rel_to_clean (integer) #

Задаёт количество страниц, которое рабочий процесс фоновой заморозки накапливает в очереди для каждой таблицы, чтобы начать очистку. Например, при значении параметра bgfreezer_pages_per_rel_to_clean=128 рабочий процесс накопит в очереди по крайней мере 128 страниц и начнёт их обрабатывать после завершения транзакции. Если задано значение 0, находящиеся в очереди страницы начнут обрабатываться после завершения каждой транзакции. Этот параметр конфигурации можно установить в файле postgresql.conf или отправив сигнал SIGHUP главному серверному процессу. Значение по умолчанию — 128.

bgfreezer_max_pages_per_rel (integer) #

Задаёт максимальное количество страниц таблицы, которое может быть помещено в очередь для очистки. При достижении этого значения накопление страниц прекращается, и новые страницы начинают вытеснять из очереди старые. Этот параметр конфигурации можно установить в файле postgresql.conf или отправив сигнал SIGHUP главному серверному процессу. Значение по умолчанию — 32768.

bgfreezer_log (integer) #

Задаёт правила протоколирования процесса фоновой заморозки. Возможные значения:

  • 0: протоколирование отключено.

  • 1: статистика по страницам и кортежам протоколируется после обработки каждой очереди для очистки и заморозки.

  • 2: статистика по страницам и кортежам протоколируется после обработки каждой второй очереди для очистки и заморозки. В этом случае вывод в журнале содержит информацию, накопленную во время обработки двух очередей, кроме значений значение_2 и значение_3, которые возвращаются для последней обработанной очереди и отражают её текущее состояние.

Если bgfreezer_log включён, механизм фоновой заморозки протоколирует сообщения в следующем формате:

LOG:  background freezer: значение_1 pages processed (значение_2 non-unique; значение_3 left), значение_4 frozen, значение_5 all visible; значение_6 tuples frozen; значение_7 tuples deleted.

Под значениями подразумевается следующее:

  • значение_1: количество обработанных страниц.

  • значение_2: количество обработанных неуникальных страниц, помещённых в очередь на очистку и заморозку во время обработки последней очереди. Как правило, это значение не совпадает с значением_1, поскольку страницы могут дублироваться. В таких случаях обрабатывается только первая страница из дубликатов.

  • значение_3: количество страниц, оставшихся после обработки последней очереди на очистку и заморозку.

  • значение_4: количество замороженных страниц.

  • значение_5: количество страниц, помеченных как полностью видимые.

  • значение_6: количество замороженных кортежей на страницах.

  • значение_7: количество удалённых кортежей на страницах.

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

Этот параметр конфигурации можно установить в файле postgresql.conf или отправив сигнал SIGHUP главному серверному процессу. Значение по умолчанию — 0.