On Fri, Dec 23, 2005 at 04:50:32PM +1100, Dan Austin wrote:
> > [...]
> > Right, the file is fully written under a temp name, and then
> > rename()'d
>
> This makes sense and is almost certainly not the cause of the problem.
> Although there is a lot more data being written to that file than I
> would have thought.
>
> One of Sun's kernel engineers has come up with a solution that seems to
> have fixed the problem. Instead of increasing work_mem (which we still
> might do) we've mounted a swapfs partition over the pg temp directory:
>
> # mount | grep pgsql_tmp
> /export/data/pgsql/data/base/64920741/pgsql_tmp on swap [...]
>
> This has actually reduced the disk activity considerably. So far, the
> blocking problem seems to have gone.
>
> Now to find some Postgres DBAs in Sydney to do some review / tuning of
> our memory settings. :-)
Note also that Solaris by default limits the amount of memory used for
disk caching, which is Not Good for PostgreSQL. IIRC this can be changed
with a sysctl, but I don't recall the details off-hand.
--
Jim C. Nasby, Sr. Engineering Consultant jnasby@pervasive.com
Pervasive Software http://pervasive.com work: 512-231-6117
vcard: http://jim.nasby.net/pervasive.vcf cell: 512-569-9461