diff options
-rw-r--r-- | doc/src/sgml/runtime.sgml | 6 | ||||
-rw-r--r-- | src/backend/storage/buffer/bufmgr.c | 12 | ||||
-rw-r--r-- | src/backend/utils/misc/guc.c | 8 | ||||
-rw-r--r-- | src/backend/utils/misc/postgresql.conf.sample | 6 |
4 files changed, 20 insertions, 12 deletions
diff --git a/doc/src/sgml/runtime.sgml b/doc/src/sgml/runtime.sgml index f82fbc877de..b4a84616f54 100644 --- a/doc/src/sgml/runtime.sgml +++ b/doc/src/sgml/runtime.sgml @@ -1,5 +1,5 @@ <!-- -$PostgreSQL: pgsql/doc/src/sgml/runtime.sgml,v 1.288 2004/10/15 16:50:29 momjian Exp $ +$PostgreSQL: pgsql/doc/src/sgml/runtime.sgml,v 1.289 2004/10/17 22:01:49 tgl Exp $ --> <Chapter Id="runtime"> @@ -1305,7 +1305,9 @@ SET ENABLE_SEQSCAN TO OFF; <varname>bgwriter_maxpages</varname> reduce the extra I/O load caused by the background writer, but leave more work to be done at checkpoint time. To reduce load spikes at checkpoints, - increase the values. + increase the values. To disable background writing entirely, + set <varname>bgwriter_percent</varname> and/or + <varname>bgwriter_maxpages</varname> to zero. </para> </sect3> diff --git a/src/backend/storage/buffer/bufmgr.c b/src/backend/storage/buffer/bufmgr.c index b9d8fc3ad53..c96c635d0a6 100644 --- a/src/backend/storage/buffer/bufmgr.c +++ b/src/backend/storage/buffer/bufmgr.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/storage/buffer/bufmgr.c,v 1.180 2004/10/16 18:57:23 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/storage/buffer/bufmgr.c,v 1.181 2004/10/17 22:01:50 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -671,8 +671,10 @@ UnpinBuffer(BufferDesc *buf, bool fixOwner) * * This is called at checkpoint time to write out all dirty shared buffers, * and by the background writer process to write out some of the dirty blocks. - * percent/maxpages should be zero in the former case, and nonzero limit - * values in the latter. + * percent/maxpages should be -1 in the former case, and limit values (>= 0) + * in the latter. + * + * Returns the number of buffers written. */ int BufferSync(int percent, int maxpages) @@ -682,6 +684,10 @@ BufferSync(int percent, int maxpages) int num_buffer_dirty; int i; + /* If either limit is zero then we are disabled from doing anything... */ + if (percent == 0 || maxpages == 0) + return 0; + /* * Get a list of all currently dirty buffers and how many there are. * We do not flush buffers that get dirtied after we started. They diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index 5f3ac94bd50..5b5a2a309f6 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -10,7 +10,7 @@ * Written by Peter Eisentraut <peter_e@gmx.net>. * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.244 2004/10/16 19:08:38 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.245 2004/10/17 22:01:51 tgl Exp $ * *-------------------------------------------------------------------- */ @@ -1248,7 +1248,7 @@ static struct config_int ConfigureNamesInt[] = NULL }, &BgWriterDelay, - 200, 10, 5000, NULL, NULL + 200, 10, 10000, NULL, NULL }, { @@ -1257,7 +1257,7 @@ static struct config_int ConfigureNamesInt[] = NULL }, &BgWriterPercent, - 1, 1, 100, NULL, NULL + 1, 0, 100, NULL, NULL }, { @@ -1266,7 +1266,7 @@ static struct config_int ConfigureNamesInt[] = NULL }, &BgWriterMaxPages, - 100, 1, 1000, NULL, NULL + 100, 0, 1000, NULL, NULL }, { diff --git a/src/backend/utils/misc/postgresql.conf.sample b/src/backend/utils/misc/postgresql.conf.sample index 59004a73c05..3aed76a411e 100644 --- a/src/backend/utils/misc/postgresql.conf.sample +++ b/src/backend/utils/misc/postgresql.conf.sample @@ -98,9 +98,9 @@ # - Background writer - -#bgwriter_delay = 200 # 10-5000 milliseconds -#bgwriter_percent = 1 # 1-100% of dirty buffers -#bgwriter_maxpages = 100 # 1-1000 buffers max at once +#bgwriter_delay = 200 # 10-10000 milliseconds between rounds +#bgwriter_percent = 1 # 0-100% of dirty buffers in each round +#bgwriter_maxpages = 100 # 0-1000 buffers max per round #--------------------------------------------------------------------------- |