Tôi đã có một vấn đề tương tự. Đó là do - một số giao dịch đã bị mắc kẹt và hoạt động trong một thời gian dài. Do đó, việc sử dụng CPU luôn ở mức 100%. Lệnh sau đã giúp tìm ra các kết nối chạy lâu nhất:
SELECT max(now() - xact_start) FROM pg_stat_activity
WHERE state IN ('idle in transaction', 'active');
Lệnh này hiển thị thời gian kể từ khi kết nối đang chạy. Thời gian này không được lớn hơn một giờ. Vì vậy, việc loại bỏ kết nối đã chạy từ lâu hoặc bị kẹt tại bất kỳ thời điểm nào, đã có tác dụng với tôi. Tôi đã theo dõi bài đăng này để theo dõi và giải quyết vấn đề của tôi. Đăng bao gồm nhiều lệnh hữu ích để theo dõi tình huống này.