That's an interesting situation. Your CPU's are pegged, and you're hardly
doing any IO. I wonder if there is some ineficient query, or if its just
very high query volume. Maybe you could try setting
log_min_duration_statement to try to track down the slowest of the queries.
Then post the slow queries with an explain analyze to the list.
Here is some info on setting up logging:
http://www.postgresql.org/docs/8.1/interactive/runtime-config-logging.html
Are your queries standard SQL or do you call functions you wrote in PL/pgSQl
or PL/Python or anything?