Set a default autovacuum vacuum_cost_delay value of 20ms, to avoid excessive
authorAlvaro Herrera
Tue, 24 Jul 2007 01:53:56 +0000 (01:53 +0000)
committerAlvaro Herrera
Tue, 24 Jul 2007 01:53:56 +0000 (01:53 +0000)
I/O utilization, per discussion.

While at it, lower the autovacuum vacuum and analyze threshold values to 50
tuples.  It is a bit higher (i.e. more conservative) than what I originally
proposed but much better than the old values for small tables.

doc/src/sgml/config.sgml
src/backend/utils/misc/guc.c
src/backend/utils/misc/postgresql.conf.sample

index b001e5f283c625abfb1e68abbbf24ccf0f620787..a3331bdef6eb1fd686e076af8265d64ff6e40ab9 100644 (file)
@@ -1,4 +1,4 @@
-
+
 
 
   Server Configuration
@@ -3247,7 +3247,7 @@ SELECT * FROM parent WHERE key = 2400;
        
         Specifies the minimum number of updated or deleted tuples needed
         to trigger a VACUUM in any one table.
-        The default is 500 tuples.
+        The default is 50 tuples.
         This parameter can only be set in the postgresql.conf
         file or on the server command line.
         This setting can be overridden for individual tables by entries in
@@ -3265,7 +3265,7 @@ SELECT * FROM parent WHERE key = 2400;
        
         Specifies the minimum number of inserted, updated or deleted tuples
         needed to trigger an ANALYZE in any one table.
-        The default is 250 tuples.
+        The default is 50 tuples.
         This parameter can only be set in the postgresql.conf
         file or on the server command line.
         This setting can be overridden for individual tables by entries in
@@ -3343,8 +3343,9 @@ SELECT * FROM parent WHERE key = 2400;
        
         Specifies the cost delay value that will be used in automatic
         VACUUM operations.  If -1 is
-        specified (which is the default), the regular
+        specified, the regular
          value will be used.
+        The default value is 20 milliseconds.
         This parameter can only be set in the postgresql.conf
         file or on the server command line.
         This setting can be overridden for individual tables by entries in
index feb5354940dd9b9189952adf4d386022c1d943f3..06915017e6e794fe16bce272fa091bfed97b83ad 100644 (file)
@@ -10,7 +10,7 @@
  * Written by Peter Eisentraut .
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.405 2007/07/10 13:14:21 mha Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.406 2007/07/24 01:53:56 alvherre Exp $
  *
  *--------------------------------------------------------------------
  */
@@ -1348,7 +1348,7 @@ static struct config_int ConfigureNamesInt[] =
            GUC_UNIT_MS
        },
        &autovacuum_vac_cost_delay,
-       -1, -1, 1000, NULL, NULL
+       20, -1, 1000, NULL, NULL
    },
 
    {
@@ -1656,7 +1656,7 @@ static struct config_int ConfigureNamesInt[] =
            NULL
        },
        &autovacuum_vac_thresh,
-       500, 0, INT_MAX, NULL, NULL
+       50, 0, INT_MAX, NULL, NULL
    },
    {
        {"autovacuum_analyze_threshold", PGC_SIGHUP, AUTOVACUUM,
@@ -1664,7 +1664,7 @@ static struct config_int ConfigureNamesInt[] =
            NULL
        },
        &autovacuum_anl_thresh,
-       250, 0, INT_MAX, NULL, NULL
+       50, 0, INT_MAX, NULL, NULL
    },
    {
        /* see varsup.c for why this is PGC_POSTMASTER not PGC_SIGHUP */
index 738eb9a5f767a20c05fe8cfa8c9558956c3d1975..51c83ade0afdf324af8d616576ef26c29228fadd 100644 (file)
 #log_autovacuum = -1           # -1 is disabled, 0 logs all actions
                    # and their durations, > 0 logs only
                    # actions running at least N msec.
-#autovacuum_vacuum_threshold = 500 # min # of tuple updates before
+#autovacuum_vacuum_threshold = 50  # min # of tuple updates before
                    # vacuum
-#autovacuum_analyze_threshold = 250    # min # of tuple updates before 
+#autovacuum_analyze_threshold = 50 # min # of tuple updates before 
                    # analyze
 #autovacuum_vacuum_scale_factor = 0.2  # fraction of rel size before 
                    # vacuum
                    # analyze
 #autovacuum_freeze_max_age = 200000000 # maximum XID age before forced vacuum
                    # (change requires restart)
-#autovacuum_vacuum_cost_delay = -1 # default vacuum cost delay for 
+#autovacuum_vacuum_cost_delay = 20 # default vacuum cost delay for 
                    # autovacuum, -1 means use 
                    # vacuum_cost_delay
 #autovacuum_vacuum_cost_limit = -1 # default vacuum cost limit for