Jeg havde et lignende problem. Det skyldtes - nogle transaktioner sad fast og kørte i lang tid. CPU-udnyttelsen var således på 100% hele tiden. Følgende kommando hjalp med at finde ud af, hvilke forbindelser der kører i længst tid:
SELECT max(now() - xact_start) FROM pg_stat_activity
WHERE state IN ('idle in transaction', 'active');
Denne kommando viser tiden siden, hvornår en forbindelse kører. Denne tid bør ikke være længere end en time. Så det virkede for mig at dræbe forbindelsen, som kørte fra lang tid eller sidder fast på et hvilket som helst tidspunkt. Jeg fulgte dette indlæg for at overvåge og løse mit problem. Opslå indeholder masser af nyttige kommandoer til at overvåge denne situation.