From 1e985720ebd1a68ae3c64a660caebf72efca59c7 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Mon, 21 Jan 2008 03:28:42 +0000 Subject: [PATCH] Improve description of bgwriter_lru_multiplier, per discussion. --- doc/src/sgml/config.sgml | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml index e0ad0cf302..a64dabfd05 100644 --- a/doc/src/sgml/config.sgml +++ b/doc/src/sgml/config.sgml @@ -1,4 +1,4 @@ - + Server Configuration @@ -1192,17 +1192,16 @@ SET ENABLE_SEQSCAN TO OFF; Background Writer - Beginning in PostgreSQL 8.0, there is a separate server + There is a separate server process called the background writer, whose function is to issue writes of dirty shared buffers. The intent is that server processes handling user queries should seldom or never have to wait for a write to occur, because the background writer will do it. However there is a net overall - increase in I/O load, because where a repeatedly-dirtied page might - before have been written only once per checkpoint interval, the + increase in I/O load, because a repeatedly-dirtied page might + otherwise be written only once per checkpoint interval, but the background writer might write it several times in the same interval. - In most situations a continuous low load is preferable to periodic - spikes, but the parameters discussed in this subsection can be used to + The parameters discussed in this subsection can be used to tune the behavior for local needs. @@ -1253,12 +1252,14 @@ SET ENABLE_SEQSCAN TO OFF; - Unless limited by bgwriter_lru_maxpages, the number - of dirty buffers written in each round is determined by reference - to the number of new buffers that have been needed by server - processes during recent rounds. This number is multiplied by - bgwriter_lru_multiplier to arrive at the estimate - of the number of buffers that will be needed during the next round. + The number of dirty buffers written in each round is based on the + number of new buffers that have been needed by server processes + during recent rounds. The average recent need is multiplied by + bgwriter_lru_multiplier to arrive at an estimate of the + number of buffers that will be needed during the next round. Dirty + buffers are written until there are that many clean, reusable buffers + available. (However, no more than bgwriter_lru_maxpages + buffers will be written per round.) Thus, a setting of 1.0 represents a just in time policy of writing exactly the number of buffers predicted to be needed. Larger values provide some cushion against spikes in demand, -- 2.40.0