A database administrator frequently wonders, "What is the system doing right now?" This chapter discusses how to find that out.
Several tools are available for monitoring database activity and analyzing performance. Most of this chapter is devoted to describing PostgreSQL's statistics collector, but one should not neglect regular Unix monitoring programs such as ps, top, iostat, and vmstat. Also, once one has identified a poorly-performing query, further investigation might be needed using PostgreSQL's EXPLAIN command. Section 14.1 discusses EXPLAIN and other methods for understanding the behavior of an individual query.
Analysing a busy back end process.
When a postgres back end process is running forever you can determine what it is trying to do using
select * from pg_stat_activity where procpid = thepid;
Once you have determined the process really is errant, and simply not a long running query to make management reports, you can safely terminate it using
select pg_cancel_backend(pid of query);
Thanks from the folks on IRC who helped me solve this one.