On Mon, 16 Mar 2009, Gregory Stark wrote:
> Why would checkpoints force out any data? It would dirty those pages and then
> sync the files marking them clean, but they should still live on in the
> filesystem cache.
The bulk of the buffer churn in pgbench is from the statement that updates
a row in the accounts table. That constantly generates updated data block
and index block pages. If you can keep those changes in RAM for a while
before forcing them to disk, you can get a lot of benefit from write
coalescing that goes away if constant checkpoints push things out with a
fsync behind them.
Not taking advantage of that effectively reduces the size of the OS cache,
because you end up with a lot of space holding pending writes that
wouldn't need to happen at all yet were the checkpoints spaced out better.
--
* Greg Smith gsmith@gregsmith.com http://www.gregsmith.com Baltimore, MD