Turn autovacuum on by default. (stats_row_level is also on by default.)

Threshold and scale factor are cut in half for more aggressive behavior.
This commit is contained in:
Peter Eisentraut 2006-08-28 13:37:18 +00:00
parent ea2e263539
commit 88b8110443
4 changed files with 29 additions and 26 deletions

View File

@ -1,4 +1,4 @@
<!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.75 2006/08/17 23:04:03 tgl Exp $ -->
<!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.76 2006/08/28 13:37:18 petere Exp $ -->
<chapter Id="runtime-config">
<title>Server Configuration</title>
@ -383,7 +383,7 @@ SET ENABLE_SEQSCAN TO OFF;
</para>
<para>
The default value is 2. The value must be less than the value of
The default value is 3. The value must be less than the value of
<varname>max_connections</varname>. This parameter can only be
set at server start.
</para>
@ -2990,7 +2990,8 @@ SELECT * FROM parent WHERE key = 2400;
<listitem>
<para>
Enables the collection of row-level statistics on database
activity. This parameter is off by default.
activity. This parameter is on by default, because the autovacuum
daemon needs the collected information.
Only superusers can change this setting.
</para>
</listitem>
@ -3113,7 +3114,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 1000.
The default is 500.
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
@ -3131,7 +3132,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 500.
The default is 250.
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
@ -3150,7 +3151,7 @@ SELECT * FROM parent WHERE key = 2400;
Specifies a fraction of the table size to add to
<varname>autovacuum_vacuum_threshold</varname>
when deciding whether to trigger a <command>VACUUM</>.
The default is 0.4.
The default is 0.2.
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
@ -3169,7 +3170,7 @@ SELECT * FROM parent WHERE key = 2400;
Specifies a fraction of the table size to add to
<varname>autovacuum_analyze_threshold</varname>
when deciding whether to trigger an <command>ANALYZE</>.
The default is 0.2.
The default is 0.1.
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

View File

@ -1,4 +1,4 @@
<!-- $PostgreSQL: pgsql/doc/src/sgml/maintenance.sgml,v 1.59 2006/08/04 04:07:38 momjian Exp $ -->
<!-- $PostgreSQL: pgsql/doc/src/sgml/maintenance.sgml,v 1.60 2006/08/28 13:37:18 petere Exp $ -->
<chapter id="maintenance">
<title>Routine Database Maintenance Tasks</title>
@ -447,14 +447,14 @@ HINT: Stop the postmaster and use a standalone backend to VACUUM in "mydb".
</sect2>
<sect2 id="autovacuum">
<title id="autovacuum-title">The auto-vacuum daemon</title>
<title id="autovacuum-title">The autovacuum daemon</title>
<indexterm>
<primary>autovacuum</primary>
<secondary>general information</secondary>
</indexterm>
<para>
Beginning in <productname>PostgreSQL </productname> 8.1, there is a
There is a
separate optional server process called the <firstterm>autovacuum
daemon</firstterm>, whose purpose is to automate the execution of
<command>VACUUM</command> and <command>ANALYZE </command> commands.
@ -465,7 +465,9 @@ HINT: Stop the postmaster and use a standalone backend to VACUUM in "mydb".
linkend="guc-stats-start-collector"> and <xref
linkend="guc-stats-row-level"> are set to <literal>true</literal>. Also,
it's important to allow a slot for the autovacuum process when choosing
the value of <xref linkend="guc-superuser-reserved-connections">.
the value of <xref linkend="guc-superuser-reserved-connections">. In
the default configuration, autovacuuming is enabled and the related
configuration parameters are appropriately set.
</para>
<para>

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.343 2006/08/17 23:04:06 tgl Exp $
* $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.344 2006/08/28 13:37:18 petere Exp $
*
*--------------------------------------------------------------------
*/
@ -707,7 +707,7 @@ static struct config_bool ConfigureNamesBool[] =
NULL
},
&pgstat_collect_tuplelevel,
false, NULL, NULL
true, NULL, NULL
},
{
{"stats_block_level", PGC_SUSET, STATS_COLLECTOR,
@ -744,7 +744,7 @@ static struct config_bool ConfigureNamesBool[] =
NULL
},
&autovacuum_start_daemon,
false, NULL, NULL
true, NULL, NULL
},
{
@ -1138,7 +1138,7 @@ static struct config_int ConfigureNamesInt[] =
NULL
},
&ReservedBackends,
2, 0, INT_MAX / 4, NULL, NULL
3, 0, INT_MAX / 4, NULL, NULL
},
{
@ -1563,7 +1563,7 @@ static struct config_int ConfigureNamesInt[] =
NULL
},
&autovacuum_vac_thresh,
1000, 0, INT_MAX, NULL, NULL
500, 0, INT_MAX, NULL, NULL
},
{
{"autovacuum_analyze_threshold", PGC_SIGHUP, AUTOVACUUM,
@ -1571,7 +1571,7 @@ static struct config_int ConfigureNamesInt[] =
NULL
},
&autovacuum_anl_thresh,
500, 0, INT_MAX, NULL, NULL
250, 0, INT_MAX, NULL, NULL
},
{
@ -1726,7 +1726,7 @@ static struct config_real ConfigureNamesReal[] =
NULL
},
&autovacuum_vac_scale,
0.4, 0.0, 100.0, NULL, NULL
0.2, 0.0, 100.0, NULL, NULL
},
{
{"autovacuum_analyze_scale_factor", PGC_SIGHUP, AUTOVACUUM,
@ -1734,7 +1734,7 @@ static struct config_real ConfigureNamesReal[] =
NULL
},
&autovacuum_anl_scale,
0.2, 0.0, 100.0, NULL, NULL
0.1, 0.0, 100.0, NULL, NULL
},
/* End-of-list marker */

View File

@ -59,7 +59,7 @@
# Note: increasing max_connections costs ~400 bytes of shared memory per
# connection slot, plus lock space (see max_locks_per_transaction). You
# might also need to raise shared_buffers to support more connections.
#superuser_reserved_connections = 2 # (change requires restart)
#superuser_reserved_connections = 3 # (change requires restart)
#unix_socket_directory = '' # (change requires restart)
#unix_socket_group = '' # (change requires restart)
#unix_socket_permissions = 0777 # octal
@ -345,7 +345,7 @@
#stats_start_collector = on # needed for block or row stats
# (change requires restart)
#stats_block_level = off
#stats_row_level = off
#stats_row_level = on
#stats_reset_on_server_start = off # (change requires restart)
@ -361,15 +361,15 @@
# AUTOVACUUM PARAMETERS
#---------------------------------------------------------------------------
#autovacuum = off # enable autovacuum subprocess?
#autovacuum = on # enable autovacuum subprocess?
#autovacuum_naptime = 60 # time between autovacuum runs, in secs
#autovacuum_vacuum_threshold = 1000 # min # of tuple updates before
#autovacuum_vacuum_threshold = 500 # min # of tuple updates before
# vacuum
#autovacuum_analyze_threshold = 500 # min # of tuple updates before
#autovacuum_analyze_threshold = 250 # min # of tuple updates before
# analyze
#autovacuum_vacuum_scale_factor = 0.4 # fraction of rel size before
#autovacuum_vacuum_scale_factor = 0.2 # fraction of rel size before
# vacuum
#autovacuum_analyze_scale_factor = 0.2 # fraction of rel size before
#autovacuum_analyze_scale_factor = 0.1 # fraction of rel size before
# analyze
#autovacuum_vacuum_cost_delay = -1 # default vacuum cost delay for
# autovac, -1 means use