Reduce the maximum value of vacuum_cost_delay and autovacuum_vacuum_cost_delay

to 100ms (from 1000).  This still seems to be comfortably larger than the
useful range of the parameter, and it should help discourage people from
picking uselessly large values.  Tweak the documentation to recommend small
values, too.  Per discussion of a couple weeks ago.
This commit is contained in:
Tom Lane 2009-02-28 00:10:52 +00:00
parent 07b9936a0f
commit 640796ff41
6 changed files with 61 additions and 53 deletions

View File

@ -1,4 +1,4 @@
<!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.210 2009/02/24 12:09:08 petere Exp $ -->
<!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.211 2009/02/28 00:10:50 tgl Exp $ -->
<chapter Id="runtime-config">
<title>Server Configuration</title>
@ -1010,7 +1010,8 @@ SET ENABLE_SEQSCAN TO OFF;
</para>
<para>
This feature is disabled by default. To enable it, set the
This feature is disabled by default for manually issued
<command>VACUUM</command> commands. To enable it, set the
<varname>vacuum_cost_delay</varname> variable to a nonzero
value.
</para>
@ -1033,6 +1034,13 @@ SET ENABLE_SEQSCAN TO OFF;
not a multiple of 10 might have the same results as setting it
to the next higher multiple of 10.
</para>
<para>
When using cost-based vacuuming, appropriate values for
<varname>vacuum_cost_delay</> are usually quite small, perhaps
10 or 20 milliseconds. Adjusting vacuum's resource consumption
is best done by changing the other vacuum cost parameters.
</para>
</listitem>
</varlistentry>

View File

@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/access/common/reloptions.c,v 1.21 2009/02/09 20:57:59 alvherre Exp $
* $PostgreSQL: pgsql/src/backend/access/common/reloptions.c,v 1.22 2009/02/28 00:10:51 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@ -116,7 +116,7 @@ static relopt_int intRelOpts[] =
"Vacuum cost delay in milliseconds, for autovacuum",
RELOPT_KIND_HEAP
},
20, 0, 1000
20, 0, 100
},
{
{

View File

@ -10,7 +10,7 @@
* Written by Peter Eisentraut <peter_e@gmx.net>.
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.495 2009/01/21 09:28:26 mha Exp $
* $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.496 2009/02/28 00:10:51 tgl Exp $
*
*--------------------------------------------------------------------
*/
@ -1467,7 +1467,7 @@ static struct config_int ConfigureNamesInt[] =
GUC_UNIT_MS
},
&VacuumCostDelay,
0, 0, 1000, NULL, NULL
0, 0, 100, NULL, NULL
},
{
@ -1477,7 +1477,7 @@ static struct config_int ConfigureNamesInt[] =
GUC_UNIT_MS
},
&autovacuum_vac_cost_delay,
20, -1, 1000, NULL, NULL
20, -1, 100, NULL, NULL
},
{

View File

@ -119,7 +119,7 @@
# - Cost-Based Vacuum Delay -
#vacuum_cost_delay = 0 # 0-1000 milliseconds
#vacuum_cost_delay = 0 # 0-100 milliseconds
#vacuum_cost_page_hit = 1 # 0-10000 credits
#vacuum_cost_page_miss = 10 # 0-10000 credits
#vacuum_cost_page_dirty = 20 # 0-10000 credits

View File

@ -7,12 +7,12 @@ SHOW datestyle;
(1 row)
-- SET to some nondefault value
SET vacuum_cost_delay TO 400;
SET vacuum_cost_delay TO 40;
SET datestyle = 'ISO, YMD';
SHOW vacuum_cost_delay;
vacuum_cost_delay
-------------------
400ms
40ms
(1 row)
SHOW datestyle;
@ -28,11 +28,11 @@ SELECT '2006-08-13 12:34:56'::timestamptz;
(1 row)
-- SET LOCAL has no effect outside of a transaction
SET LOCAL vacuum_cost_delay TO 500;
SET LOCAL vacuum_cost_delay TO 50;
SHOW vacuum_cost_delay;
vacuum_cost_delay
-------------------
400ms
40ms
(1 row)
SET LOCAL datestyle = 'SQL';
@ -50,11 +50,11 @@ SELECT '2006-08-13 12:34:56'::timestamptz;
-- SET LOCAL within a transaction that commits
BEGIN;
SET LOCAL vacuum_cost_delay TO 500;
SET LOCAL vacuum_cost_delay TO 50;
SHOW vacuum_cost_delay;
vacuum_cost_delay
-------------------
500ms
50ms
(1 row)
SET LOCAL datestyle = 'SQL';
@ -74,7 +74,7 @@ COMMIT;
SHOW vacuum_cost_delay;
vacuum_cost_delay
-------------------
400ms
40ms
(1 row)
SHOW datestyle;
@ -91,11 +91,11 @@ SELECT '2006-08-13 12:34:56'::timestamptz;
-- SET should be reverted after ROLLBACK
BEGIN;
SET vacuum_cost_delay TO 600;
SET vacuum_cost_delay TO 60;
SHOW vacuum_cost_delay;
vacuum_cost_delay
-------------------
600ms
60ms
(1 row)
SET datestyle = 'German';
@ -115,7 +115,7 @@ ROLLBACK;
SHOW vacuum_cost_delay;
vacuum_cost_delay
-------------------
400ms
40ms
(1 row)
SHOW datestyle;
@ -132,7 +132,7 @@ SELECT '2006-08-13 12:34:56'::timestamptz;
-- Some tests with subtransactions
BEGIN;
SET vacuum_cost_delay TO 700;
SET vacuum_cost_delay TO 70;
SET datestyle = 'MDY';
SHOW datestyle;
DateStyle
@ -147,11 +147,11 @@ SELECT '2006-08-13 12:34:56'::timestamptz;
(1 row)
SAVEPOINT first_sp;
SET vacuum_cost_delay TO 800;
SET vacuum_cost_delay TO 80;
SHOW vacuum_cost_delay;
vacuum_cost_delay
-------------------
800ms
80ms
(1 row)
SET datestyle = 'German, DMY';
@ -181,7 +181,7 @@ SELECT '2006-08-13 12:34:56'::timestamptz;
(1 row)
SAVEPOINT second_sp;
SET vacuum_cost_delay TO 900;
SET vacuum_cost_delay TO 90;
SET datestyle = 'SQL, YMD';
SHOW datestyle;
DateStyle
@ -196,11 +196,11 @@ SELECT '2006-08-13 12:34:56'::timestamptz;
(1 row)
SAVEPOINT third_sp;
SET vacuum_cost_delay TO 1000;
SET vacuum_cost_delay TO 100;
SHOW vacuum_cost_delay;
vacuum_cost_delay
-------------------
1s
100ms
(1 row)
SET datestyle = 'Postgres, MDY';
@ -220,7 +220,7 @@ ROLLBACK TO third_sp;
SHOW vacuum_cost_delay;
vacuum_cost_delay
-------------------
900ms
90ms
(1 row)
SHOW datestyle;
@ -239,7 +239,7 @@ ROLLBACK TO second_sp;
SHOW vacuum_cost_delay;
vacuum_cost_delay
-------------------
700ms
70ms
(1 row)
SHOW datestyle;
@ -258,7 +258,7 @@ ROLLBACK;
SHOW vacuum_cost_delay;
vacuum_cost_delay
-------------------
400ms
40ms
(1 row)
SHOW datestyle;
@ -278,7 +278,7 @@ BEGIN;
SHOW vacuum_cost_delay;
vacuum_cost_delay
-------------------
400ms
40ms
(1 row)
SHOW datestyle;
@ -294,11 +294,11 @@ SELECT '2006-08-13 12:34:56'::timestamptz;
(1 row)
SAVEPOINT sp;
SET LOCAL vacuum_cost_delay TO 300;
SET LOCAL vacuum_cost_delay TO 30;
SHOW vacuum_cost_delay;
vacuum_cost_delay
-------------------
300ms
30ms
(1 row)
SET LOCAL datestyle = 'Postgres, MDY';
@ -318,7 +318,7 @@ ROLLBACK TO sp;
SHOW vacuum_cost_delay;
vacuum_cost_delay
-------------------
400ms
40ms
(1 row)
SHOW datestyle;
@ -337,7 +337,7 @@ ROLLBACK;
SHOW vacuum_cost_delay;
vacuum_cost_delay
-------------------
400ms
40ms
(1 row)
SHOW datestyle;
@ -357,7 +357,7 @@ BEGIN;
SHOW vacuum_cost_delay;
vacuum_cost_delay
-------------------
400ms
40ms
(1 row)
SHOW datestyle;
@ -373,11 +373,11 @@ SELECT '2006-08-13 12:34:56'::timestamptz;
(1 row)
SAVEPOINT sp;
SET LOCAL vacuum_cost_delay TO 300;
SET LOCAL vacuum_cost_delay TO 30;
SHOW vacuum_cost_delay;
vacuum_cost_delay
-------------------
300ms
30ms
(1 row)
SET LOCAL datestyle = 'Postgres, MDY';
@ -397,7 +397,7 @@ RELEASE SAVEPOINT sp;
SHOW vacuum_cost_delay;
vacuum_cost_delay
-------------------
300ms
30ms
(1 row)
SHOW datestyle;
@ -416,7 +416,7 @@ ROLLBACK;
SHOW vacuum_cost_delay;
vacuum_cost_delay
-------------------
400ms
40ms
(1 row)
SHOW datestyle;
@ -433,12 +433,12 @@ SELECT '2006-08-13 12:34:56'::timestamptz;
-- SET followed by SET LOCAL
BEGIN;
SET vacuum_cost_delay TO 400;
SET LOCAL vacuum_cost_delay TO 500;
SET vacuum_cost_delay TO 40;
SET LOCAL vacuum_cost_delay TO 50;
SHOW vacuum_cost_delay;
vacuum_cost_delay
-------------------
500ms
50ms
(1 row)
SET datestyle = 'ISO, DMY';
@ -459,7 +459,7 @@ COMMIT;
SHOW vacuum_cost_delay;
vacuum_cost_delay
-------------------
400ms
40ms
(1 row)
SHOW datestyle;

View File

@ -3,14 +3,14 @@
SHOW datestyle;
-- SET to some nondefault value
SET vacuum_cost_delay TO 400;
SET vacuum_cost_delay TO 40;
SET datestyle = 'ISO, YMD';
SHOW vacuum_cost_delay;
SHOW datestyle;
SELECT '2006-08-13 12:34:56'::timestamptz;
-- SET LOCAL has no effect outside of a transaction
SET LOCAL vacuum_cost_delay TO 500;
SET LOCAL vacuum_cost_delay TO 50;
SHOW vacuum_cost_delay;
SET LOCAL datestyle = 'SQL';
SHOW datestyle;
@ -18,7 +18,7 @@ SELECT '2006-08-13 12:34:56'::timestamptz;
-- SET LOCAL within a transaction that commits
BEGIN;
SET LOCAL vacuum_cost_delay TO 500;
SET LOCAL vacuum_cost_delay TO 50;
SHOW vacuum_cost_delay;
SET LOCAL datestyle = 'SQL';
SHOW datestyle;
@ -30,7 +30,7 @@ SELECT '2006-08-13 12:34:56'::timestamptz;
-- SET should be reverted after ROLLBACK
BEGIN;
SET vacuum_cost_delay TO 600;
SET vacuum_cost_delay TO 60;
SHOW vacuum_cost_delay;
SET datestyle = 'German';
SHOW datestyle;
@ -42,12 +42,12 @@ SELECT '2006-08-13 12:34:56'::timestamptz;
-- Some tests with subtransactions
BEGIN;
SET vacuum_cost_delay TO 700;
SET vacuum_cost_delay TO 70;
SET datestyle = 'MDY';
SHOW datestyle;
SELECT '2006-08-13 12:34:56'::timestamptz;
SAVEPOINT first_sp;
SET vacuum_cost_delay TO 800;
SET vacuum_cost_delay TO 80;
SHOW vacuum_cost_delay;
SET datestyle = 'German, DMY';
SHOW datestyle;
@ -56,12 +56,12 @@ ROLLBACK TO first_sp;
SHOW datestyle;
SELECT '2006-08-13 12:34:56'::timestamptz;
SAVEPOINT second_sp;
SET vacuum_cost_delay TO 900;
SET vacuum_cost_delay TO 90;
SET datestyle = 'SQL, YMD';
SHOW datestyle;
SELECT '2006-08-13 12:34:56'::timestamptz;
SAVEPOINT third_sp;
SET vacuum_cost_delay TO 1000;
SET vacuum_cost_delay TO 100;
SHOW vacuum_cost_delay;
SET datestyle = 'Postgres, MDY';
SHOW datestyle;
@ -85,7 +85,7 @@ SHOW vacuum_cost_delay;
SHOW datestyle;
SELECT '2006-08-13 12:34:56'::timestamptz;
SAVEPOINT sp;
SET LOCAL vacuum_cost_delay TO 300;
SET LOCAL vacuum_cost_delay TO 30;
SHOW vacuum_cost_delay;
SET LOCAL datestyle = 'Postgres, MDY';
SHOW datestyle;
@ -105,7 +105,7 @@ SHOW vacuum_cost_delay;
SHOW datestyle;
SELECT '2006-08-13 12:34:56'::timestamptz;
SAVEPOINT sp;
SET LOCAL vacuum_cost_delay TO 300;
SET LOCAL vacuum_cost_delay TO 30;
SHOW vacuum_cost_delay;
SET LOCAL datestyle = 'Postgres, MDY';
SHOW datestyle;
@ -121,8 +121,8 @@ SELECT '2006-08-13 12:34:56'::timestamptz;
-- SET followed by SET LOCAL
BEGIN;
SET vacuum_cost_delay TO 400;
SET LOCAL vacuum_cost_delay TO 500;
SET vacuum_cost_delay TO 40;
SET LOCAL vacuum_cost_delay TO 50;
SHOW vacuum_cost_delay;
SET datestyle = 'ISO, DMY';
SET LOCAL datestyle = 'Postgres, MDY';