]> granicus.if.org Git - postgresql/commitdiff
Reduce the maximum value of vacuum_cost_delay and autovacuum_vacuum_cost_delay
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 28 Feb 2009 00:10:52 +0000 (00:10 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 28 Feb 2009 00:10:52 +0000 (00:10 +0000)
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.

doc/src/sgml/config.sgml
src/backend/access/common/reloptions.c
src/backend/utils/misc/guc.c
src/backend/utils/misc/postgresql.conf.sample
src/test/regress/expected/guc.out
src/test/regress/sql/guc.sql

index b3b65f5f0d445df8f68b3eede65f74d15606c8d0..554503891597e2d76f018ec3b257a8d4e90c9d22 100644 (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>
 
index 548c0b00de84bac3832cc79cdb219f6b1dfdb3dc..0060be6a0285e7951618259b3f76526f98b907a5 100644 (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
        },
        {
                {
index 40b087a8f3adc541c3442c931a73be63ca90fabd..5411840b2a087e1439c295602c0e7e96769518ce 100644 (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
        },
 
        {
index a874b4541dbe004858dc84ab0d601c299761ddd9..f3aaf818ad83d02691fb7ef22a0e3aeef6b59dce 100644 (file)
 
 # - 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
index 2e6056b376962fa9d5ee897146396334aae15ca8..a580daa089ddde3a05ede33c478abbe44d6707e6 100644 (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;
index e03bc2059575639ce1caf3370d7847f946ee3dce..9966606275c9b32ac50182cb1974e0d18e6fdecd 100644 (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';