Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit e19594c

Browse files
Reduce the default value of vacuum_cost_page_miss.
When commit f425b60 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 cbccac3, 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
1 parent 69059d3 commit e19594c

File tree

4 files changed

+4
-4
lines changed

4 files changed

+4
-4
lines changed

doc/src/sgml/config.sgml

+1-1
Original file line numberDiff line numberDiff line change
@@ -2116,7 +2116,7 @@ include_dir 'conf.d'
21162116
The estimated cost for vacuuming a buffer that has to be read from
21172117
disk. This represents the effort to lock the buffer pool,
21182118
lookup the shared hash table, read the desired block in from
2119-
the disk and scan its content. The default value is 10.
2119+
the disk and scan its content. The default value is 2.
21202120
</para>
21212121
</listitem>
21222122
</varlistentry>

src/backend/utils/init/globals.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ int max_parallel_workers = 8;
137137
int MaxBackends = 0;
138138

139139
int VacuumCostPageHit = 1; /* GUC parameters for vacuum */
140-
int VacuumCostPageMiss = 10;
140+
int VacuumCostPageMiss = 2;
141141
int VacuumCostPageDirty = 20;
142142
int VacuumCostLimit = 200;
143143
double VacuumCostDelay = 0;

src/backend/utils/misc/guc.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -2413,7 +2413,7 @@ static struct config_int ConfigureNamesInt[] =
24132413
NULL
24142414
},
24152415
&VacuumCostPageMiss,
2416-
10, 0, 10000,
2416+
2, 0, 10000,
24172417
NULL, NULL, NULL
24182418
},
24192419

src/backend/utils/misc/postgresql.conf.sample

+1-1
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@
164164

165165
#vacuum_cost_delay = 0 # 0-100 milliseconds (0 disables)
166166
#vacuum_cost_page_hit = 1 # 0-10000 credits
167-
#vacuum_cost_page_miss = 10 # 0-10000 credits
167+
#vacuum_cost_page_miss = 2 # 0-10000 credits
168168
#vacuum_cost_page_dirty = 20 # 0-10000 credits
169169
#vacuum_cost_limit = 200 # 1-10000 credits
170170

0 commit comments

Comments
 (0)