From 9edd720050a2979c684b514f7d5118a8a0d45dff Mon Sep 17 00:00:00 2001 From: Magnus Hagander <magnus@hagander.net> Date: Mon, 8 Dec 2008 20:30:58 +0000 Subject: [PATCH] Clearify how processes are started by autovacuum, and what the effect of autovacuum_max_workers parameter is. Per discussion with Alvaro. --- doc/src/sgml/maintenance.sgml | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/doc/src/sgml/maintenance.sgml b/doc/src/sgml/maintenance.sgml index c2a4ce325c0..09c14782d86 100644 --- a/doc/src/sgml/maintenance.sgml +++ b/doc/src/sgml/maintenance.sgml @@ -1,4 +1,4 @@ -<!-- $PostgreSQL: pgsql/doc/src/sgml/maintenance.sgml,v 1.86 2008/06/16 03:13:14 tgl Exp $ --> +<!-- $PostgreSQL: pgsql/doc/src/sgml/maintenance.sgml,v 1.87 2008/12/08 20:30:58 mha Exp $ --> <chapter id="maintenance"> <title>Routine Database Maintenance Tasks</title> @@ -522,10 +522,16 @@ HINT: Stop the postmaster and use a standalone backend to VACUUM in "mydb". The <quote>autovacuum daemon</> actually consists of multiple processes. There is a persistent daemon process, called the <firstterm>autovacuum launcher</firstterm>, which is in charge of starting - an <firstterm>autovacuum worker</firstterm> process on each database every - <xref linkend="guc-autovacuum-naptime"> seconds. On each run, the worker - process checks each table within that database, and executes - <command>VACUUM</> and/or <command>ANALYZE</> commands as needed. + <firstterm>autovacuum worker</firstterm> processes for all databases. The + launcher will distribute the work across time, but attempt to start one + worker on each database every <xref linkend="guc-autovacuum-naptime"> + seconds. One worker will be launched for each database, with a maximum + of <xref linkend="guc-autovacuum-max-workers"> processes running at the + same time. If there are more than + <xref linkend="guc-autovacuum-max-workers"> databases to be processed, + the next database will be processed as soon as the first worker finishes. + The worker processes will check each table within its database and + execute <command>VACUUM</> and/or <command>ANALYZE</> as needed. </para> <para> -- GitLab