From: | Scott Marlowe <smarlowe(at)g2switchworks(dot)com> |
---|---|
To: | Simon Riggs <simon(at)2ndquadrant(dot)com> |
Cc: | Martijn van Oosterhout <kleptog(at)svana(dot)org>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Vlad <marchenko(at)gmail(dot)com>, pgsql-general(at)postgresql(dot)org |
Subject: | Re: Starting PostgreSQL 8.0.4 with more memory [FreeBSD |
Date: | 2005-10-31 20:50:31 |
Message-ID: | 1130791829.15018.17.camel@state.g2switchworks.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Mon, 2005-10-31 at 10:58, Simon Riggs wrote:
> On Mon, 2005-10-31 at 15:44 +0100, Martijn van Oosterhout wrote:
> > On Mon, Oct 31, 2005 at 01:34:12PM +0000, Simon Riggs wrote:
> > > > Secondly, you're assuming that PostgreSQLs caching is at least as
> > > > efficient as the OS caching, which is more of an assertion than
> > > > anything else.
> > >
> > > Do you doubt that? Why would shared_buffers be variable otherwise?
> >
> > Because the optimal hasn't been found and is probably different for
> > each machine.
> >
> > There have been tests that demonstrate that you can raise the buffers
> > to a certain point which is optimal and after that it just doesn't
> > help [1]. They peg optimal size at 5-10% of memory.
>
> Please read the rest of that thread. Those results and their conclusions
> were refuted in some detail, which lead to a number of optimizations in
> 8.0 and 8.1, mostly written by Tom.
>
> > Also, as Tom pointed out, any memory assigned to shared buffers can't
> > be used for sorts, temporary tables, plain old disk caching, trigger
> > queues or anything else that isn't shared between backends. There are
> > far more useful uses of memory than just buffering disk blocks.
>
> Your point was about cache efficiency as an argument for not increasing
> shared_buffers. Politely, I don't accept that argument. Clearly, there
> are some other considerations (for which I agree completely) but those
> don't prevent you increasing shared_buffers, they just place limits on
> your overall memory budget which could effect shared_buffers of course.
As I understand it, when the last backend referencing a collection of
data stops referencing it, that the buffers holding that data are
released, and if, a second later, another backend wants the data, then
it has to go to the Kernel for it again.
Is this still the case in 8.1?
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2005-10-31 21:00:17 | Re: Installation trouble |
Previous Message | Simon Riggs | 2005-10-31 20:43:30 | Re: Partitioning attempts |