Postgresql явный VACUUM против auto-VACUUM: различия? Рекомендации?

Быстрый вопрос от PostgreSQL (относительный) newb:

Мы запускаем пакетный процесс, который на последнем этапе удаляет большинство предыдущих пакетов.

Дисковое пространство является проблемой, поэтому мы должны убедиться, что PostgreSQL убирает за собой.

Кроме того, чтобы заставить PostgreSQL быстрее собирать мусор, есть ли разница между явным вызовом VACUUM в конце пакета и разрешением демону auto-VACUUM обрабатывать его? Есть ли причина рекомендовать один подход против другого?

Спасибо!

1 ответ

Путь назад, когда был один вакуум, и он был полон и блокировался. Тогда ребята из PostgreSQL добавили неблокирующий вакуум. Но вы все равно должны были запланировать это самостоятельно.

Затем какой-то гений создал демона, который автоматически запускал для вас вакуум, когда стол был необходим. Он использует ту же самую команду вакуума, которую вы или я бы использовали, но имеет множество настроек, особенно настроек по умолчанию, которые делают его работу медленнее и менее навязчивым. В первую очередь эти настройки относятся к рабочим потокам (по умолчанию 3), стоимости задержки (20 мс для автовакуума, 0 мс для обычного вакуума) и пределу задержки автовакуума (-1, т. Е. Используйте системную настройку, равную 200).

Следовательно, обычный вакуум ОЧЕНЬ агрессивен без каких-либо задержек и будет работать так же быстро и быстро, насколько позволяет ваша подсистема ввода-вывода. Это в основном конкурирует с вашей обычной рабочей нагрузкой за пропускную способность ввода-вывода.

Как правило, вы можете сделать одну из двух вещей в вашей ситуации:

Один: сделать автовакуум более агрессивным. Понизив autovacuum_vacuum_cost_delay с 20 до чего-то в диапазоне от 2 до 5, он будет работать намного быстрее, но все равно не будет слишком сильно мешать.

Два: запускать обычные пылесосы вручную. Так как обычные пылесосы по умолчанию не имеют задержки по времени, это будет самым быстрым, но и самым разрушительным.

Решение принимается на основе моделей использования и т. Д.

Другие вопросы по тегам