1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-28 23:42:10 +03:00

Allow background writing to be shut down by setting limit values to zero.

This does not disable the bgwriter process: it still has to wake up often
enough to collect fsync requests from backends in a timely fashion.  But
it responds to the recent gripe about not being able to prevent the disk
from being spun up constantly.
This commit is contained in:
Tom Lane
2004-10-17 22:01:51 +00:00
parent bdbe9c9f06
commit 4347cc2392
4 changed files with 20 additions and 12 deletions

View File

@ -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

View File

@ -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
},
{

View File

@ -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
#---------------------------------------------------------------------------