• Peter Geoghegan's avatar
    Reduce the default value of vacuum_cost_page_miss. · e19594c5
    Peter Geoghegan authored
    When commit f425b605 introduced cost based vacuum delays back in 2004,
    the defaults reflected then-current trends in hardware, as well as
    certain historical limitations in PostgreSQL.  There have been enormous
    improvements in both areas since that time.  The cost limit GUC defaults
    finally became much more representative of current trends following
    commit cbccac37, which decreased autovacuum_vacuum_cost_delay's default
    by 10x for PostgreSQL 12 (it went from 20ms to only 2ms).
    
    The relative costs have shifted too.  This should also be accounted for
    by the defaults.  More specifically, the relative importance of avoiding
    dirtying pages within VACUUM has greatly increased, primarily due to
    main memory capacity scaling and trends in flash storage.  Within
    Postgres itself, improvements like sequential access during index
    vacuuming (at least in nbtree and GiST indexes) have also been
    contributing factors.
    
    To reflect all this, decrease the default of vacuum_cost_page_miss to 2.
    Since the default of vacuum_cost_page_dirty remains 20, dirtying a page
    is now considered 10x "costlier" than a page miss by default.
    
    Author: Peter Geoghegan <pg@bowt.ie>
    Discussion: https://postgr.es/m/CAH2-WzmLPFnkWT8xMjmcsm7YS3+_Qi3iRWAb2+_Bc8UhVyHfuA@mail.gmail.com
    e19594c5
globals.c 4.6 KB