Есть 2 параметра, которые определяют, когда запускается процесс автоочистки
• autovacuum_vacuum_threshold • autovacuum_vacuum_scale_factor
Порог вакуума определяется как: вакуумный порог = базовый порог вакуума + коэффициент масштабирования вакуума * число из кортежей
, где базовый вакуумный порог равен autovacuum_vacuum_threshold, масштабный коэффициент вакуума равен autovacuum_vacuum_scale_factor, а количество кортежей равно pg_class.reltuples.
Параметр autovacuum_vacuum_threshold (целое число) определяет минимальное количество обновленных или удаленных кортежей, необходимое для запуска VACUUM в любой одной таблице. По умолчанию это 50 кортежей.
Параметр autovacuum_analyze_scale_factor указывает долю размера таблицы, которую необходимо добавить к autovacuum_analyze_threshold при принятии решения о запуске АНАЛИЗА. По умолчанию используется значение 0,1 (10% от размера таблицы).
Давайте представим сценарий, в котором вы не установили два вышеуказанных параметра, и они используют значения по умолчанию. Теперь, например, если у вас есть таблица с десятью миллионами записей, состоящая из десяти тысяч мертвых кортежей. Это все равно не вызовет автовакуум, так как согласно приведенной выше формуле порог вакуума будет равен (50 + 10% от десяти миллионов), что составляет примерно 1 миллион мертвых кортежей.
Следовательно, чтобы сделать автовакуум более агрессивным, вы можете соответствующим образом установить два вышеупомянутых параметра на уровне таблицы, чтобы он мог снизить пороговое значение и, следовательно, активировать автовакуум быстрее.
См. Приведенную ниже документацию. ссылка для получения дополнительной информации об основах Autovacuum Tuning: o https://www.2ndquadrant.com/en/blog/autovacuum-tuning-basics/ o https://aws.amazon.com/blogs/database/a-case-study-of-tuning-autovacuum-in-amazon-rds-for-postgresql/ o https://www.postgresql.org/docs/9.5/routine-vacuuming.html o https://www.postgresql.org/docs/9.5/runtime-config-autovacuum.html#GUC -AUTOVACUUM-VACUUM -SALE-FACTOR o https://www.postgresql.org/docs/9.5/runtime-config-autovacuum.html#GUC -AUTOVACUUM-VACUUM-THRESHOLD