Мы оцениваем PostgreSQL 11.1 для нашего производства.Имея систему с 4251 обновлением в секунду, ~ 1000 удалений в секунду и ~ 3221 вставкой в секунду и 1 миллиард транзакций в день, мы сталкиваемся с проблемой, когда PostgreSQL не использует свое пространство (удаление / обновление), а таблицы постоянно увеличиваются в размере.
Мы настроили агрессивные настройки автовакуума, чтобы избежать ситуации с переворотом.также попытался добавить периодическое выполнение vacuum analyze
и vacuum
- и все еще нет повторного использования пространства.(Только vacuum full
или pg_repack
освобождает пространство для операционной системы - но это не повторное использование.)
Ниже приведены наши настройки вакуума:
autovacuum | on
vacuum_cost_limit | 6000
autovacuum_analyze_threshold | 50
autovacuum_vacuum_threshold | 50
autovacuum_vacuum_cost_delay | 5
autovacuum_max_workers | 32
autovacuum_freeze_max_age | 2000000
autovacuum_multixact_freeze_max_age | 2000000
vacuum_freeze_table_age | 20000
vacuum_multixact_freeze_table_age | 20000
vacuum_cost_page_dirty | 20
vacuum_freeze_min_age | 10000
vacuum_multixact_freeze_min_age | 10000
log_autovacuum_min_duration | 1000
autovacuum_naptime | 10
autovacuum_analyze_scale_factor | 0
autovacuum_vacuum_scale_factor | 0
vacuum_cleanup_index_scale_factor | 0
vacuum_cost_delay | 0
vacuum_defer_cleanup_age | 0
autovacuum_vacuum_cost_limit | -1
autovacuum_work_mem | -1