Set a default autovacuum vacuum_cost_delay value of 20ms, to avoid excessive
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Tue, 24 Jul 2007 01:53:56 +0000 (01:53 +0000)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
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 4c94963a03487b56030e36f6cb7667df3b77aef8..f8fa0f083491a5c9cabbd16b7e9558b5bde03588 100644 (file)
@@ -3247,7 +3247,7 @@ SELECT * FROM parent WHERE key = 2400;
        <para>
         Specifies the minimum number of updated or deleted tuples needed
         to trigger a <command>VACUUM</> in any one table.
-        The default is 500 tuples.
+        The default is 50 tuples.
         This parameter can only be set in the <filename>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;
        <para>
         Specifies the minimum number of inserted, updated or deleted tuples
         needed to trigger an <command>ANALYZE</> in any one table.
-        The default is 250 tuples.
+        The default is 50 tuples.
         This parameter can only be set in the <filename>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;
        <para>
         Specifies the cost delay value that will be used in automatic
         <command>VACUUM</> operations.  If <literal>-1</> is
-        specified (which is the default), the regular
+        specified, the regular
         <xref linkend="guc-vacuum-cost-delay"> value will be used.
+        The default value is 20 milliseconds.
         This parameter can only be set in the <filename>postgresql.conf</>
         file or on the server command line.
         This setting can be overridden for individual tables by entries in
index 49d1f6b33df95eb60cf188905e39dc334f0366f1..fed0925bdcc8be4bd43ff87f740aee69f050ae5f 100644 (file)
@@ -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