Měl jsem podobný problém. Bylo to kvůli - některé transakce se zasekávaly a běžely po dlouhou dobu. Využití CPU tedy bylo po celou dobu na 100 %. Následující příkaz pomohl zjistit připojení běžící nejdelší dobu:
SELECT max(now() - xact_start) FROM pg_stat_activity
WHERE state IN ('idle in transaction', 'active');
Tento příkaz zobrazuje čas od spuštění připojení. Tato doba by neměla být delší než hodinu. Takže zabití spojení, které dlouho běželo nebo se v kterémkoli bodě zaseklo, mi fungovalo. Sledoval(a) jsem tento příspěvek pro sledování a řešení mého problému. Příspěvek obsahuje mnoho užitečných příkazů pro sledování této situace.