tunning disk cache for pgsql?

Nicolas Haller nicolas.haller at corp.nerim.fr
Fri Dec 31 09:06:15 UTC 2010

On Thu, Dec 30, 2010 at 06:15:34PM -0600, Jim Nasby wrote:
> On Dec 28, 2010, at 7:59 AM, Nicolas Haller wrote:
> > I use a new box with 4GB RAM as a pgsql server. In pgsql, you can
> > set the effective_cache_size to indicate the memory available to cache
> > disk I/O.
> > As "recommended", my box use 1300MB to shared buffers (IPC shared memory)
> > and 2700 Mo to disk cache.

> That's probably not a great mix unless your workload is very
> read-heavy. Writes will push data through shared buffers back into the
> OS, which will also try to cache it, so you'll end up with
> double-buffering.

Interresting. My DB is not heavily loaded yet so I don't see any problem
at this time. I just follow recommendations. I thought Postgresql write and
sync disk after writing WAL or doing a checkpoint.

> > If I look memory usage in top, it say:
> > Mem: 1154M Active, 1911M Inact, 601M Wired, 112M Cache, 417M Buf, 148M Free

> The Cache reported by top in FreeBSD isn't filesystem cache; it's a
> cache for some internal stuff. Buf are filesystem buffers, but they're
> not the only mechanism for the OS to cache data. Most data is actually
> cached via active and inactive pages.

Ok, so when Postgresql doing a query for a second time for (very simple)
example, FreeBSD can retrieve data from inactive mem too?

Someone knows if there is a page which explains FreeBSD mechanisms about
memory and fs cache management? I think I must read something on it :-)


Nicolas Haller

More information about the freebsd-performance mailing list