On Wed, 2010-02-17 at 08:30 -0500, Jeff wrote:
> Since getting on 8.4 I've been monitoring things fairly closely.
> I whipped up a quick script to monitor pg_stat_bgwriter and save
> deltas every minute so I can ensure my bgwriter is beating out the
> backends for writes (as it is supposed to do).
>
> Now, the odd thing I'm running into is this:
>
> bgwriter_delay is 100ms (ie 10 times a second, give or take)
> bgwriter_lru_maxpages is 500 (~5000 pages / second)
> bgwriter_lru_multiplier is 4
>
> Now, assuming I understand these values right the following is what
> should typically happen:
>
> while(true)
> {
> if buffers_written > bgwriter_lru_maxpages
> or buffers_written > anticipated_pages_needed *
> bgwriter_lru_multiplier
> {
> sleep(bgwriter_delay ms)
> continue;
> }
> ...
> }
Correct.
> so I should not be able to have more than ~5000 bgwriter_clean pages
> per minute. (this assumes writing takes 0ms, which of course is
> inaccurate)
That works out to 5000/second - 300,000/minute.
> However, I see this in my stats (they are deltas), and I'm reasonably
> sure it is not a bug in the code:
>
> (timestamp, buffers clean, buffers_checkpoint, buffers backend)
> 2010-02-17 08:23:51.184018 | 1 | 1686
> | 5
> 2010-02-17 08:22:51.170863 | 15289 | 12676
> | 207
> 2010-02-17 08:21:51.155793 | 38467 | 8993
> | 4277
> 2010-02-17 08:20:51.139199 | 35582 | 0
> | 9437
> 2010-02-17 08:19:51.125025 | 8 | 0
> | 3
> 2010-02-17 08:18:51.111184 | 1140 | 1464
> | 6
> 2010-02-17 08:17:51.098422 | 0 | 1682
> | 228
> 2010-02-17 08:16:51.082804 | 50 | 0
> | 6
> 2010-02-17 08:15:51.067886 | 789 | 0
> | 1
>
> perhaps some stats buffering occurring or something or some general
> misunderstanding of some of these tunables?
>
> --
> Jeff Trout <jeff@jefftrout.com>
> http://www.stuarthamm.net/
> http://www.dellsmartexitin.com/
>
>
>
>
--
Brad Nicholson 416-673-4106
Database Administrator, Afilias Canada Corp.