How to tell if database tuning is fruitful (PostgreSQL)
How well the database is running is just how well SQL statements are running. 


Pick a representative sample of SQL statements that hit each database on your server. Picking a sample is easy; picking a representative sample isn't. Ideally, a representative sample should  include some SELECT, INSERT, UPDATE, and DELETE statements. But it might not be practical to run INSERT, UPDATE, and DELETE statements against a production database.
Put them under version control.
Run them pseudo-randomly against the server. The goal is to get representative performance, not to get the fastest performance.  The last time I did this, I didn't have much time to spend on this stuff, so I hoped that running the statements somewhat randomly would be representative. I expected that sometimes they'd hit the cache, and sometimes they wouldn't, just like user queries.  How you execute these queries can bias your results; be careful and thoughtful.
Time the execution. Save the timings in a database.
Plot the timings on a control chart. Done correctly, this will show you  baseline system performance, random variation around the baseline, and patterns that suggest that something might have changed. If you improve overall server performance, for example, expect the pattern to shift toward the lower control limit. 
Think about the right time to change your control limits. (Same reference)