John,
> -work_mem
Depends on the number of concurrent queries you expect to run and what size
sorts you expect them to do.
> -maintenance_work_mem - 50% of the largest table?
Actually, in current code I've found that anything over 256mb doesn't actually
get used.
> -shared_buffers - max value 50000
Actually, I need to update that. On newer faster multi-core machines you may
want to allocate up to 1GB of shared buffers.
> -effective_cache_size - max 2/3 of available ram, ie 24GB on the
> hardware described above
Yes.
> -shmmax - how large dare I set this value on dedicated postgres servers?
Set it to 2GB and you'll be covered.
> -checkpoint_segments - this is crucial as one of the server is
> transaction heavy
Well, it only helps you to raise this if you have a dedicated disk resource
for the xlog. Otherwise having more segments doesn't help you much.
> -vacuum_cost_delay
Try 200ms to start.
Also, set wal_buffers to 128.
--
Josh Berkus
PostgreSQL @ Sun
San Francisco