mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
Simplify and rename some GUC variables, per various recent discussions:
* stats_start_collector goes away; we always start the collector process, unless prevented by a problem with setting up the stats UDP socket. * stats_reset_on_server_start goes away; it seems useless in view of the availability of pg_stat_reset(). * stats_block_level and stats_row_level are merged into a single variable "track_counts", which controls all reports sent to the collector process. * stats_command_string is renamed to track_activities. * log_autovacuum is renamed to log_autovacuum_min_duration to better reflect its meaning. The log_autovacuum change is not a compatibility issue since it didn't exist before 8.3 anyway. The other changes need to be release-noted.
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.145 2007/09/22 19:10:44 tgl Exp $ -->
|
||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.146 2007/09/24 03:12:23 tgl Exp $ -->
|
||||
|
||||
<chapter Id="runtime-config">
|
||||
<title>Server Configuration</title>
|
||||
@ -3186,30 +3186,19 @@ COPY postgres_log FROM '/full/path/to/logfile.csv' WITH csv;
|
||||
<title>Query and Index Statistics Collector</title>
|
||||
|
||||
<para>
|
||||
These parameters control a server-wide statistics collection feature.
|
||||
These parameters control server-wide statistics collection features.
|
||||
When statistics collection is enabled, the data that is produced can be
|
||||
accessed via the <structname>pg_stat</structname> and
|
||||
<structname>pg_statio</structname> family of system views.
|
||||
Refer to <xref linkend="monitoring"> for more information.
|
||||
</para>
|
||||
|
||||
<note>
|
||||
<para>
|
||||
As of <productname>PostgreSQL</productname> 8.2,
|
||||
<varname>stats_command_string</varname> controls a separate data
|
||||
collection mechanism that can be turned on or off independently
|
||||
of whether the statistics-collection subprocess is running.
|
||||
The subprocess is only needed to support collection of
|
||||
block-level or row-level statistics.
|
||||
</para>
|
||||
</note>
|
||||
|
||||
<variablelist>
|
||||
|
||||
<varlistentry id="guc-stats-command-string" xreflabel="stats_command_string">
|
||||
<term><varname>stats_command_string</varname> (<type>boolean</type>)</term>
|
||||
<varlistentry id="guc-track-activities" xreflabel="track_activities">
|
||||
<term><varname>track_activities</varname> (<type>boolean</type>)</term>
|
||||
<indexterm>
|
||||
<primary><varname>stats_command_string</> configuration parameter</primary>
|
||||
<primary><varname>track_activities</> configuration parameter</primary>
|
||||
</indexterm>
|
||||
<listitem>
|
||||
<para>
|
||||
@ -3225,6 +3214,21 @@ COPY postgres_log FROM '/full/path/to/logfile.csv' WITH csv;
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="guc-track-counts" xreflabel="track_counts">
|
||||
<term><varname>track_counts</varname> (<type>boolean</type>)</term>
|
||||
<indexterm>
|
||||
<primary><varname>track_counts</> configuration parameter</primary>
|
||||
</indexterm>
|
||||
<listitem>
|
||||
<para>
|
||||
Enables collection of statistics on database activity.
|
||||
This parameter is on by default, because the autovacuum
|
||||
daemon needs the collected information.
|
||||
Only superusers can change this setting.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="guc-update-process-title" xreflabel="update_process_title">
|
||||
<term><varname>update_process_title</varname> (<type>boolean</type>)</term>
|
||||
<indexterm>
|
||||
@ -3234,75 +3238,13 @@ COPY postgres_log FROM '/full/path/to/logfile.csv' WITH csv;
|
||||
<para>
|
||||
Enables updating of the process title every time a new SQL command
|
||||
is received by the server. The process title is typically viewed
|
||||
by the <command>ps</> command or in Windows using the <application>Process
|
||||
Explorer</>. Only superusers can change this setting.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="guc-stats-start-collector" xreflabel="stats_start_collector">
|
||||
<term><varname>stats_start_collector</varname> (<type>boolean</type>)</term>
|
||||
<indexterm>
|
||||
<primary><varname>stats_start_collector</> configuration parameter</primary>
|
||||
</indexterm>
|
||||
<listitem>
|
||||
<para>
|
||||
Controls whether the server should start the
|
||||
statistics-collection subprocess. This is on by default, but
|
||||
can be turned off if you know you have no interest in
|
||||
collecting statistics or running autovacuum.
|
||||
This parameter can only be set at server start, because the collection
|
||||
subprocess cannot be started or stopped on-the-fly. (However, the
|
||||
extent to which statistics are actually gathered can be changed while
|
||||
the server is running, so long as the subprocess exists.)
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="guc-stats-block-level" xreflabel="stats_block_level">
|
||||
<term><varname>stats_block_level</varname> (<type>boolean</type>)</term>
|
||||
<indexterm>
|
||||
<primary><varname>stats_block_level</> configuration parameter</primary>
|
||||
</indexterm>
|
||||
<listitem>
|
||||
<para>
|
||||
Enables the collection of block-level statistics on database
|
||||
activity. This parameter is off by default.
|
||||
by the <command>ps</> command,
|
||||
or in Windows by using the <application>Process Explorer</>.
|
||||
Only superusers can change this setting.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="guc-stats-row-level" xreflabel="stats_row_level">
|
||||
<term><varname>stats_row_level</varname> (<type>boolean</type>)</term>
|
||||
<indexterm>
|
||||
<primary><varname>stats_row_level</> configuration parameter</primary>
|
||||
</indexterm>
|
||||
<listitem>
|
||||
<para>
|
||||
Enables the collection of row-level statistics on database
|
||||
activity. This parameter is on by default, because the autovacuum
|
||||
daemon needs the collected information.
|
||||
Only superusers can change this setting.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="guc-stats-reset-on-server-start" xreflabel="stats_reset_on_server_start">
|
||||
<term><varname>stats_reset_on_server_start</varname> (<type>boolean</type>)</term>
|
||||
<indexterm>
|
||||
<primary><varname>stats_reset_on_server_start</> configuration parameter</primary>
|
||||
</indexterm>
|
||||
<listitem>
|
||||
<para>
|
||||
If on, collected block-level and row-level statistics are zeroed out
|
||||
whenever the server is restarted. If off, statistics are accumulated
|
||||
across server restarts. This parameter is off by default.
|
||||
This parameter can only be set at server start.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
</sect2>
|
||||
|
||||
@ -3369,21 +3311,40 @@ COPY postgres_log FROM '/full/path/to/logfile.csv' WITH csv;
|
||||
<listitem>
|
||||
<para>
|
||||
Controls whether the server should run the
|
||||
autovacuum launcher daemon. This is on by default.
|
||||
<varname>stats_start_collector</> and <varname>stats_row_level</>
|
||||
must also be turned on for autovacuum to work.
|
||||
autovacuum launcher daemon. This is on by default; however,
|
||||
<xref linkend="guc-track-counts"> must also be turned on for
|
||||
autovacuum to work.
|
||||
This parameter can only be set in the <filename>postgresql.conf</>
|
||||
file or on the server command line.
|
||||
</para>
|
||||
<para>
|
||||
Note that even when this parameter is disabled, the system
|
||||
will periodically launch autovacuum processes in order to
|
||||
will launch autovacuum processes if necessary to
|
||||
prevent transaction ID wraparound. See <xref
|
||||
linkend="vacuum-for-wraparound"> for more information.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="guc-log-autovacuum-min-duration" xreflabel="log_autovacuum_min_duration">
|
||||
<term><varname>log_autovacuum_min_duration</varname> (<type>integer</type>)</term>
|
||||
<indexterm>
|
||||
<primary><varname>log_autovacuum_min_duration</> configuration parameter</primary>
|
||||
</indexterm>
|
||||
<listitem>
|
||||
<para>
|
||||
Causes each action executed by autovacuum to be logged if it ran for at
|
||||
least the specified number of milliseconds. Setting this to zero logs
|
||||
all autovacuum actions. Minus-one (the default) disables logging
|
||||
autovacuum actions. For example, if you set this to
|
||||
<literal>250ms</literal> then all automatic vacuums and analyzes that run
|
||||
250ms or longer will be logged. Enabling this parameter can be helpful
|
||||
in tracking autovacuum activity. This setting can only be set in
|
||||
the <filename>postgresql.conf</> file or on the server command line.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="guc-autovacuum-max-workers" xreflabel="autovacuum_max_workers">
|
||||
<term><varname>autovacuum_max_workers</varname> (<type>integer</type>)</term>
|
||||
<indexterm>
|
||||
@ -3393,26 +3354,7 @@ COPY postgres_log FROM '/full/path/to/logfile.csv' WITH csv;
|
||||
<para>
|
||||
Specifies the maximum number of autovacuum processes (other than the
|
||||
autovacuum launcher) which may be running at any one time. The default
|
||||
is three (<literal>3</literal>). This parameter can only be set in
|
||||
the <filename>postgresql.conf</> file or on the server command line.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="guc-log-autovacuum" xreflabel="log_autovacuum">
|
||||
<term><varname>log_autovacuum</varname> (<type>integer</type>)</term>
|
||||
<indexterm>
|
||||
<primary><varname>log_autovacuum</> configuration parameter</primary>
|
||||
</indexterm>
|
||||
<listitem>
|
||||
<para>
|
||||
Causes each action executed by autovacuum to be logged if it ran for at
|
||||
least the specified number of milliseconds. Setting this to zero logs
|
||||
all autovacuum actions. Minus-one (the default) disables logging
|
||||
autovacuum actions. For example, if you set this to
|
||||
<literal>250ms</literal> then all vacuums and analyzes that run
|
||||
250ms or longer will be logged. Enabling this parameter can be helpful
|
||||
in tracking autovacuum activity. This setting can only be set in
|
||||
is three. This parameter can only be set in
|
||||
the <filename>postgresql.conf</> file or on the server command line.
|
||||
</para>
|
||||
</listitem>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/maintenance.sgml,v 1.81 2007/09/14 13:43:03 momjian Exp $ -->
|
||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/maintenance.sgml,v 1.82 2007/09/24 03:12:23 tgl Exp $ -->
|
||||
|
||||
<chapter id="maintenance">
|
||||
<title>Routine Database Maintenance Tasks</title>
|
||||
@ -203,7 +203,7 @@
|
||||
</sect2>
|
||||
|
||||
<sect2 id="vacuum-for-statistics">
|
||||
<title>Updating planner statistics</title>
|
||||
<title>Updating Planner Statistics</title>
|
||||
|
||||
<indexterm zone="vacuum-for-statistics">
|
||||
<primary>statistics</primary>
|
||||
@ -279,7 +279,7 @@
|
||||
</sect2>
|
||||
|
||||
<sect2 id="vacuum-for-wraparound">
|
||||
<title>Preventing transaction ID wraparound failures</title>
|
||||
<title>Preventing Transaction ID Wraparound Failures</title>
|
||||
|
||||
<indexterm zone="vacuum-for-wraparound">
|
||||
<primary>transaction ID</primary>
|
||||
@ -460,7 +460,7 @@ 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 Auto-Vacuum Daemon</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>autovacuum</primary>
|
||||
@ -473,10 +473,9 @@ HINT: Stop the postmaster and use a standalone backend to VACUUM in "mydb".
|
||||
<command>VACUUM</command> and <command>ANALYZE </command> commands.
|
||||
When enabled, autovacuum checks for
|
||||
tables that have had a large number of inserted, updated or deleted
|
||||
tuples. These checks use the row-level statistics collection facility;
|
||||
tuples. These checks use the statistics collection facility;
|
||||
therefore, autovacuum cannot be used unless <xref
|
||||
linkend="guc-stats-start-collector"> and <xref
|
||||
linkend="guc-stats-row-level"> are set to <literal>true</literal>.
|
||||
linkend="guc-track-counts"> is set to <literal>true</literal>.
|
||||
In the default configuration, autovacuuming is enabled and the related
|
||||
configuration parameters are appropriately set.
|
||||
</para>
|
||||
@ -497,8 +496,8 @@ HINT: Stop the postmaster and use a standalone backend to VACUUM in "mydb".
|
||||
eligible for vacuuming in a short amount of time, all autovacuum workers
|
||||
may end up vacuuming those tables for a very long time. This would result
|
||||
in other tables and databases not being vacuumed until a worker became
|
||||
available. There is also not a limit on how many workers might be in a
|
||||
single database, but workers do try and avoid repeating work that has
|
||||
available. There is not a limit on how many workers might be in a
|
||||
single database, but workers do try to avoid repeating work that has
|
||||
already been done by other workers. Note that the number of running
|
||||
workers does not count towards the <xref linkend="guc-max-connections"> nor
|
||||
the <xref linkend="guc-superuser-reserved-connections"> limits.
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/monitoring.sgml,v 1.52 2007/09/20 17:56:30 tgl Exp $ -->
|
||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/monitoring.sgml,v 1.53 2007/09/24 03:12:23 tgl Exp $ -->
|
||||
|
||||
<chapter id="monitoring">
|
||||
<title>Monitoring Database Activity</title>
|
||||
@ -117,14 +117,15 @@ postgres: <replaceable>user</> <replaceable>database</> <replaceable>host</> <re
|
||||
<productname>PostgreSQL</productname>'s <firstterm>statistics collector</>
|
||||
is a subsystem that supports collection and reporting of information about
|
||||
server activity. Presently, the collector can count accesses to tables
|
||||
and indexes in both disk-block and individual-row terms.
|
||||
and indexes in both disk-block and individual-row terms. It also tracks
|
||||
total numbers of rows in each table, and the last vacuum and analyze times
|
||||
for each table.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<productname>PostgreSQL</productname> also supports determining the exact
|
||||
command currently being executed by other server processes. This is an
|
||||
independent facility that can be enabled or disabled whether or not
|
||||
block-level and row-level statistics are being collected.
|
||||
independent facility that does not depend on the collector process.
|
||||
</para>
|
||||
|
||||
<sect2 id="monitoring-stats-setup">
|
||||
@ -139,31 +140,14 @@ postgres: <replaceable>user</> <replaceable>database</> <replaceable>host</> <re
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The parameter <xref linkend="guc-stats-start-collector"> must be
|
||||
set to <literal>true</> for the statistics collector to be launched
|
||||
at all. This is the default and recommended setting, but it can be
|
||||
turned off if you have no interest in statistics and want to
|
||||
squeeze out every last drop of overhead. (The savings is likely to
|
||||
be small, however.) Note that this option cannot be changed while
|
||||
the server is running.
|
||||
The parameter <xref linkend="guc-track-counts"> controls whether
|
||||
information is actually sent to the collector process and thus determines
|
||||
whether any run-time overhead occurs for event counting.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The parameters <xref linkend="guc-stats-block-level"> and <xref
|
||||
linkend="guc-stats-row-level"> control how much information is
|
||||
actually sent to the collector and thus determine how much run-time
|
||||
overhead occurs. These respectively determine whether a server
|
||||
process tracks disk-block-level access
|
||||
statistics and row-level access statistics and sends these to the collector.
|
||||
Additionally, per-database transaction commit and abort statistics
|
||||
are collected if either of these parameters are set.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The parameter <xref linkend="guc-stats-command-string"> enables monitoring
|
||||
The parameter <xref linkend="guc-track-activities"> enables monitoring
|
||||
of the current command being executed by any server process.
|
||||
The statistics collector subprocess need not be running to enable this
|
||||
feature.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@ -190,13 +174,13 @@ postgres: <replaceable>user</> <replaceable>database</> <replaceable>host</> <re
|
||||
<para>
|
||||
When using the statistics to monitor current activity, it is important
|
||||
to realize that the information does not update instantaneously.
|
||||
Each individual server process transmits new block and row access counts to
|
||||
Each individual server process transmits new statistical counts to
|
||||
the collector just before going idle; so a query or transaction still in
|
||||
progress does not affect the displayed totals. Also, the collector itself
|
||||
emits a new report at most once per <varname>PGSTAT_STAT_INTERVAL</varname>
|
||||
milliseconds (500 unless altered while building the server). So the
|
||||
displayed information lags behind actual activity. However, current-query
|
||||
information collected by <varname>stats_command_string</varname> is
|
||||
information collected by <varname>track_activities</varname> is
|
||||
always up-to-date.
|
||||
</para>
|
||||
|
||||
@ -240,7 +224,7 @@ postgres: <replaceable>user</> <replaceable>database</> <replaceable>host</> <re
|
||||
current query began execution, time at which the process was
|
||||
started, and client's address and port number. The columns that
|
||||
report data on the current query are available unless the parameter
|
||||
<varname>stats_command_string</varname> has been turned off.
|
||||
<varname>track_activities</varname> has been turned off.
|
||||
Furthermore, these columns are only visible if the user examining
|
||||
the view is a superuser or the same as the user owning the process
|
||||
being reported on.
|
||||
@ -715,7 +699,7 @@ postgres: <replaceable>user</> <replaceable>database</> <replaceable>host</> <re
|
||||
Active command of the given server process, but only if the
|
||||
current user is a superuser or the same user as that of
|
||||
the session being queried (and
|
||||
<varname>stats_command_string</varname> is on)
|
||||
<varname>track_activities</varname> is on)
|
||||
</entry>
|
||||
</row>
|
||||
|
||||
@ -726,7 +710,7 @@ postgres: <replaceable>user</> <replaceable>database</> <replaceable>host</> <re
|
||||
True if the given server process is waiting for a lock,
|
||||
but only if the current user is a superuser or the same user as that of
|
||||
the session being queried (and
|
||||
<varname>stats_command_string</varname> is on)
|
||||
<varname>track_activities</varname> is on)
|
||||
</entry>
|
||||
</row>
|
||||
|
||||
@ -738,7 +722,7 @@ postgres: <replaceable>user</> <replaceable>database</> <replaceable>host</> <re
|
||||
executing query was started, but only if the
|
||||
current user is a superuser or the same user as that of
|
||||
the session being queried (and
|
||||
<varname>stats_command_string</varname> is on)
|
||||
<varname>track_activities</varname> is on)
|
||||
</entry>
|
||||
</row>
|
||||
|
||||
@ -750,7 +734,7 @@ postgres: <replaceable>user</> <replaceable>database</> <replaceable>host</> <re
|
||||
executing transaction was started, but only if the
|
||||
current user is a superuser or the same user as that of
|
||||
the session being queried (and
|
||||
<varname>stats_command_string</varname> is on)
|
||||
<varname>track_activities</varname> is on)
|
||||
</entry>
|
||||
</row>
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.507 2007/09/16 03:03:00 tgl Exp $ -->
|
||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.508 2007/09/24 03:12:23 tgl Exp $ -->
|
||||
<!--
|
||||
|
||||
Typical markup:
|
||||
@ -1475,8 +1475,7 @@ do it for earlier branch release files.
|
||||
<listitem>
|
||||
<para>
|
||||
Improve performance of statistics monitoring, especially
|
||||
<link
|
||||
linkend="guc-stats-command-string"><varname>stats_command_string</></link>
|
||||
<varname>stats_command_string</>
|
||||
(Tom, Bruce)
|
||||
</para>
|
||||
|
||||
|
Reference in New Issue
Block a user