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@xxxxxxxxxxxxx Pervasive Software http://pervasive.com work: 512-231-6117 vcard: http://jim.nasby.net/pervasive.vcf cell: 512-569-9461