Re: 7.3.1 New install, large queries are slow - Mailing list pgsql-performance

From Bruce Momjian
Subject Re: 7.3.1 New install, large queries are slow
Date
Msg-id 200301171752.h0HHqLR27486@candle.pha.pa.us
Whole thread Raw
In response to Re: 7.3.1 New install, large queries are slow  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: 7.3.1 New install, large queries are slow  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-performance
Tom Lane wrote:
> "Josh Berkus" <josh@agliodbs.com> writes:
> >>> shared_buffers = 131072
> >>
> >> Yipes!  Try about a tenth that much.  Or less.
>
> > Why?  He has 4GB RAM on the machine.
>
> I think a gig of shared buffers is overkill no matter what.
>
> One reason not to crank up shared_buffers "just because you can" is that
> there are operations (such as CHECKPOINT) that have to scan through all
> the buffers, linearly.  I don't *think* any of these are in
> performance-critical paths, but nonetheless you're wasting CPU.  I trust
> the kernel to manage a huge number of buffers efficiently more than I
> trust Postgres.
>
> There's another issue, which is somewhat platform-dependent; I'm not
> sure if it applies to whatever OS Roman is using.  But if you have a
> machine where SysV shared memory is not locked into RAM, then a huge
> shared buffer arena creates the probability that some of it will be
> touched seldom enough that the kernel will decide to swap it out.  When
> that happens, you *really* pay through the nose --- a page that you
> might have been able to get from kernel cache without incurring I/O will
> now certainly cost you I/O to touch.  It's even worse if the buffer
> contained a dirty page at the time it was swapped out --- now that page
> is going to require being read back in and written out again, a net cost
> of three I/Os where there should have been one.  Bottom line is that
> shared_buffers should be kept small enough that the space all looks like
> a hot spot to the kernel's memory allocation manager.

Just as a data point, I believe other database systems recommend very
large shared memory areas if a lot of data is being accessed.  I seem to
remember Informix doing that.

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

pgsql-performance by date:

Previous
From: "Patrick Hatcher"
Date:
Subject: Re: Strange Join question
Next
From: Andrew Sullivan
Date:
Subject: Re: 7.3.1 New install, large queries are slow