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"> <chapter Id="runtime-config">
<title>Server Configuration</title> <title>Server Configuration</title>
@ -383,7 +383,7 @@ SET ENABLE_SEQSCAN TO OFF;
</para> </para>
<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 <varname>max_connections</varname>. This parameter can only be
set at server start. set at server start.
</para> </para>
@ -2990,7 +2990,8 @@ SELECT * FROM parent WHERE key = 2400;
<listitem> <listitem>
<para> <para>
Enables the collection of row-level statistics on database 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. Only superusers can change this setting.
</para> </para>
</listitem> </listitem>
@ -3113,7 +3114,7 @@ SELECT * FROM parent WHERE key = 2400;
<para> <para>
Specifies the minimum number of updated or deleted tuples needed Specifies the minimum number of updated or deleted tuples needed
to trigger a <command>VACUUM</> in any one table. 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</> This parameter can only be set in the <filename>postgresql.conf</>
file or on the server command line. file or on the server command line.
This setting can be overridden for individual tables by entries in This setting can be overridden for individual tables by entries in
@ -3131,7 +3132,7 @@ SELECT * FROM parent WHERE key = 2400;
<para> <para>
Specifies the minimum number of inserted, updated or deleted tuples Specifies the minimum number of inserted, updated or deleted tuples
needed to trigger an <command>ANALYZE</> in any one table. 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</> This parameter can only be set in the <filename>postgresql.conf</>
file or on the server command line. file or on the server command line.
This setting can be overridden for individual tables by entries in 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 Specifies a fraction of the table size to add to
<varname>autovacuum_vacuum_threshold</varname> <varname>autovacuum_vacuum_threshold</varname>
when deciding whether to trigger a <command>VACUUM</>. 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</> This parameter can only be set in the <filename>postgresql.conf</>
file or on the server command line. file or on the server command line.
This setting can be overridden for individual tables by entries in 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 Specifies a fraction of the table size to add to
<varname>autovacuum_analyze_threshold</varname> <varname>autovacuum_analyze_threshold</varname>
when deciding whether to trigger an <command>ANALYZE</>. 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</> This parameter can only be set in the <filename>postgresql.conf</>
file or on the server command line. file or on the server command line.
This setting can be overridden for individual tables by entries in 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"> <chapter id="maintenance">
<title>Routine Database Maintenance Tasks</title> <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>
<sect2 id="autovacuum"> <sect2 id="autovacuum">
<title id="autovacuum-title">The auto-vacuum daemon</title> <title id="autovacuum-title">The autovacuum daemon</title>
<indexterm> <indexterm>
<primary>autovacuum</primary> <primary>autovacuum</primary>
<secondary>general information</secondary> <secondary>general information</secondary>
</indexterm> </indexterm>
<para> <para>
Beginning in <productname>PostgreSQL </productname> 8.1, there is a There is a
separate optional server process called the <firstterm>autovacuum separate optional server process called the <firstterm>autovacuum
daemon</firstterm>, whose purpose is to automate the execution of daemon</firstterm>, whose purpose is to automate the execution of
<command>VACUUM</command> and <command>ANALYZE </command> commands. <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-start-collector"> and <xref
linkend="guc-stats-row-level"> are set to <literal>true</literal>. Also, 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 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>
<para> <para>

View File

@ -10,7 +10,7 @@
* Written by Peter Eisentraut <peter_e@gmx.net>. * Written by Peter Eisentraut <peter_e@gmx.net>.
* *
* IDENTIFICATION * 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 NULL
}, },
&pgstat_collect_tuplelevel, &pgstat_collect_tuplelevel,
false, NULL, NULL true, NULL, NULL
}, },
{ {
{"stats_block_level", PGC_SUSET, STATS_COLLECTOR, {"stats_block_level", PGC_SUSET, STATS_COLLECTOR,
@ -744,7 +744,7 @@ static struct config_bool ConfigureNamesBool[] =
NULL NULL
}, },
&autovacuum_start_daemon, &autovacuum_start_daemon,
false, NULL, NULL true, NULL, NULL
}, },
{ {
@ -1138,7 +1138,7 @@ static struct config_int ConfigureNamesInt[] =
NULL NULL
}, },
&ReservedBackends, &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 NULL
}, },
&autovacuum_vac_thresh, &autovacuum_vac_thresh,
1000, 0, INT_MAX, NULL, NULL 500, 0, INT_MAX, NULL, NULL
}, },
{ {
{"autovacuum_analyze_threshold", PGC_SIGHUP, AUTOVACUUM, {"autovacuum_analyze_threshold", PGC_SIGHUP, AUTOVACUUM,
@ -1571,7 +1571,7 @@ static struct config_int ConfigureNamesInt[] =
NULL NULL
}, },
&autovacuum_anl_thresh, &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 NULL
}, },
&autovacuum_vac_scale, &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, {"autovacuum_analyze_scale_factor", PGC_SIGHUP, AUTOVACUUM,
@ -1734,7 +1734,7 @@ static struct config_real ConfigureNamesReal[] =
NULL NULL
}, },
&autovacuum_anl_scale, &autovacuum_anl_scale,
0.2, 0.0, 100.0, NULL, NULL 0.1, 0.0, 100.0, NULL, NULL
}, },
/* End-of-list marker */ /* End-of-list marker */

View File

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