Eu estava tendo o mesmo problema. O postgresql é configurado no AWS RDS e estava tendo 100% de utilização de cpu mesmo depois de aumentar a instância. Depurei com o método mostrado aqui e um dos métodos usados para eu.
Eu verifiquei a consulta em execução há mais tempo e soube que certas consultas estavam paradas e estavam em execução há mais de 3-4 horas. Para verificar desde quanto tempo a consulta está sendo executada, execute o seguinte comando:
SELECT max(now() - xact_start) FROM pg_stat_activity
WHERE state IN ('idle in transaction', 'active');
Se isso for mais de uma hora, esse é o problema. Elimine a conexão longa e limite a idade máxima da conexão do lado do aplicativo.