[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

PG и autovacuum



Здравствуйте.

Подскажите пожалуйста, как настроить autovacuum для postgresql.
Есть одна таблица с часто меняющимися записями, то есть не update, а insert, delete.
Например при полутора миллионах записей:
                 name                  |  oid  | size_mb | count
---------------------------------------+-------+---------+-------------
 test                                  | 18384 |      92 | 1.59718e+06
 test_pkey                             | 18387 |      63 | 1.59718e+06*
*

После этого удаляем 90% записей, размер тот же.
                 name                  |  oid  | size_mb | count
---------------------------------------+-------+---------+--------
 test                                  | 18384 |      92 | 161024
 test_pkey                             | 18387 |      63 | 161024

Если сделать vacuum full, то размер уменьшается, но это нужно делать вручную. Как автоматизировать? Таблица дана для примера, реальная разрастается на многие сотни Мб и всё растёт.
Текущие настройки autovacuum:
#------------------------------------------------------------------------------
# AUTOVACUUM PARAMETERS
#------------------------------------------------------------------------------

autovacuum = on # Enable autovacuum subprocess? 'on' # requires track_counts to also be on. #log_autovacuum_min_duration = -1 # -1 disables, 0 logs all actions and
                                        # their durations, > 0 logs only
# actions running at least this number
                                        # of milliseconds.
autovacuum_max_workers = 2 # max number of autovacuum subprocesses
                                        # (change requires restart)
autovacuum_naptime = 10min              # time between autovacuum runs
autovacuum_vacuum_threshold = 20        # min number of row updates before
                                        # vacuum
autovacuum_analyze_threshold = 10       # min number of row updates before
                                        # analyze
#autovacuum_vacuum_scale_factor = 0.1 # fraction of table size before vacuum #autovacuum_analyze_scale_factor = 0.1 # fraction of table size before analyze #autovacuum_freeze_max_age = 200000000 # maximum XID age before forced vacuum
                                        # (change requires restart)
#autovacuum_vacuum_cost_delay = 20ms    # default vacuum cost delay for
                                        # autovacuum, in milliseconds;
                                        # -1 means use vacuum_cost_delay
#autovacuum_vacuum_cost_limit = -1      # default vacuum cost limit for
                                        # autovacuum, -1 means use
                                        # vacuum_cost_limit


--
Regards
Dmitry Podkovyrkin
mobile: +7 922 20 56 756
email: dmitry@rutelecom.company
skype: dmitryrw


Reply to: