mirror of
https://github.com/postgres/postgres.git
synced 2025-10-25 13:17:41 +03:00
Add a multi-worker capability to autovacuum. This allows multiple worker
processes to be running simultaneously. Also, now autovacuum processes do not count towards the max_connections limit; they are counted separately from regular processes, and are limited by the new GUC variable autovacuum_max_workers. The launcher now has intelligence to launch workers on each database every autovacuum_naptime seconds, limited only on the max amount of worker slots available. Also, the global worker I/O utilization is limited by the vacuum cost-based delay feature. Workers are "balanced" so that the total I/O consumption does not exceed the established limit. This part of the patch was contributed by ITAGAKI Takahiro. Per discussion.
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/utils/init/globals.c,v 1.100 2007/01/05 22:19:44 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/utils/init/globals.c,v 1.101 2007/04/16 18:29:54 alvherre Exp $
|
||||
*
|
||||
* NOTES
|
||||
* Globals used all over the place should be declared here and not
|
||||
@@ -95,9 +95,14 @@ bool allowSystemTableMods = false;
|
||||
int work_mem = 1024;
|
||||
int maintenance_work_mem = 16384;
|
||||
|
||||
/* Primary determinants of sizes of shared-memory structures: */
|
||||
/*
|
||||
* Primary determinants of sizes of shared-memory structures. MaxBackends is
|
||||
* MaxConnections + autovacuum_max_workers (it is computed by the GUC assign
|
||||
* hook):
|
||||
*/
|
||||
int NBuffers = 1000;
|
||||
int MaxBackends = 100;
|
||||
int MaxConnections = 90;
|
||||
|
||||
int VacuumCostPageHit = 1; /* GUC parameters for vacuum */
|
||||
int VacuumCostPageMiss = 10;
|
||||
|
||||
Reference in New Issue
Block a user