I'm working with a PostgreSQL (8.1) server on a dedicated machine with 64 GB of RAM and a fast RAID disk. The data set itself is pretty huge -- we have several tables around 200 GB, more in the 50-100 GB range, and it's constantly growing, with vacuums happening overnight, large operations running sometime in the early morning, and then smaller operations on-demand throughout the day.
We've been running into some performance problems lately, with, say, the vacuum not finishing in time before the large operations start, and then that starts blocking for the rest of the day. We've been trying to adjust our configuration to take advantage of our resources, but we're having trouble with some of the more loosely defined parameters like work_mem. (One experiment was to raise it to 512 MB with a max_connections of 150, which has turned out to cause some issues.)
What might be some good baseline parameters to try? Once we get the configuration into a stable state, we can always start experimenting more with fine-tuning individual values, but we're not sure where our needs differ from the standard recommendations for this kind of thing.
Edit: I answered this in comments, but to make it official, we are in the process of putting together a more long-term plan which will include partitioning as well as some other re-architecturing tasks, but right now, we're trying to get the most out of what we have. I'm looking for tips that are more along the lines of "A work_mem setting of 32MB will probably serve you fairly well, but you probably won't see much improvement going over 64MB."