diff options
author | Andrew Dunstan <andrew@dunslane.net> | 2019-03-06 09:10:12 -0500 |
---|---|---|
committer | Andrew Dunstan <andrew@dunslane.net> | 2019-03-06 09:10:12 -0500 |
commit | bd09503e633b8077822bb4daf91625b71ac16253 (patch) | |
tree | 73d4900fd3ffb9acec34d4d890d34102b175e28f /src | |
parent | ff9bff0a85b6c23d622b4913ed38f459866f0d3a (diff) | |
download | postgresql-bd09503e633b8077822bb4daf91625b71ac16253.tar.gz postgresql-bd09503e633b8077822bb4daf91625b71ac16253.zip |
Increase the default vacuum_cost_limit from 200 to 2000
The original 200 default value was set back in f425b605f4e when the cost
delay settings were first added. Hardware has improved quite a bit since
then and we've also made improvements such as sorting buffers during
checkpoints (9cd00c457e6) which should result in less random writes.
This low default value was reportedly causing problems with badly
configured servers and in the absence of a native method to remove
excessive bloat from tables without incurring an AccessExclusiveLock, this
often made cleaning up the damage caused by badly configured auto-vacuums
difficult.
It seems more likely that someone will notice that auto-vacuum is running
too quickly than too slowly, so let's go all out and multiple the default
value for the setting by 10. With the default vacuum_cost_page_dirty and
autovacuum_vacuum_cost_delay (assuming a page size of 8192 bytes), this
allows autovacuum a theoretical maximum dirty write rate of around 39MB/s
instead of just 3.9MB/s.
Author: David Rowley
Discussion: https://postgr.es/m/CAKJS1f_YbXC2qTMPyCbmsPiKvZYwpuQNQMohiRXLj1r=8_rYvw@mail.gmail.com
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/utils/init/globals.c | 2 | ||||
-rw-r--r-- | src/backend/utils/misc/guc.c | 2 | ||||
-rw-r--r-- | src/backend/utils/misc/postgresql.conf.sample | 2 |
3 files changed, 3 insertions, 3 deletions
diff --git a/src/backend/utils/init/globals.c b/src/backend/utils/init/globals.c index fd51934aaf1..a6ce1845372 100644 --- a/src/backend/utils/init/globals.c +++ b/src/backend/utils/init/globals.c @@ -137,7 +137,7 @@ int MaxBackends = 0; int VacuumCostPageHit = 1; /* GUC parameters for vacuum */ int VacuumCostPageMiss = 10; int VacuumCostPageDirty = 20; -int VacuumCostLimit = 200; +int VacuumCostLimit = 2000; int VacuumCostDelay = 0; int VacuumPageHit = 0; diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index 156d147c85b..826c189a967 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -2268,7 +2268,7 @@ static struct config_int ConfigureNamesInt[] = NULL }, &VacuumCostLimit, - 200, 1, 10000, + 2000, 1, 10000, NULL, NULL, NULL }, diff --git a/src/backend/utils/misc/postgresql.conf.sample b/src/backend/utils/misc/postgresql.conf.sample index bd6ea65d0c8..99f1666eef9 100644 --- a/src/backend/utils/misc/postgresql.conf.sample +++ b/src/backend/utils/misc/postgresql.conf.sample @@ -159,7 +159,7 @@ #vacuum_cost_page_hit = 1 # 0-10000 credits #vacuum_cost_page_miss = 10 # 0-10000 credits #vacuum_cost_page_dirty = 20 # 0-10000 credits -#vacuum_cost_limit = 200 # 1-10000 credits +#vacuum_cost_limit = 2000 # 1-10000 credits # - Background Writer - |