"Kevin Grittner" <[EMAIL PROTECTED]> writes:

> When we first went to PostgreSQL our biggest problem was that dirty buffers
> would accumulate in shared memory until a checkpoint, and then overrun the
> controllers cache. This would cause disk reads to queue up behind the
> writes, and queries which normally ran in a millisecond or two were timing
> out at our renderers' 20 second limit. The problem went away completely when
> we used a very aggressive background writer configuration, to put the dirty
> pages in front of the OS file system right away, so that its algorithms and
> the controller cache could deal with things before they got out of hand.

Sounds like a tailor-mode use case for precisely what Heikki was complaining
about. He couldn't find a case in 8.3 where tuning the bgwriter to be more
aggressive helped at all.

With the load distributed checkpoints I think the symptoms would be different
but the disease may still be there. Since checkpoints will try not to swamp
your i/o bandwidth any longer you shouldn't get these terrible spikes. 

However the theory with bgwriter is that setting it to be very aggressive will
reduce the response time even outside the checkpoints by avoiding the need for
individual backends to evict dirty pages. So it would be interesting to know
with 8.3 whether the average response time even outside of checkpoints is
reduced by having a more aggressive bgwriter policy.

  Gregory Stark
  EnterpriseDB          http://www.enterprisedb.com

---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster

Reply via email to