Tôi đang sử dụng postgresql 9.5.4 trên amazon RDS với ~ 1300 kết nối liên tục từ đường ray 4.2 với "yet_statements: false". Trong nhiều giờ và nhiều ngày, chỉ số RDS "Bộ nhớ có thể giải phóng" tiếp tục giảm xuống vô thời hạn nhưng lại nhảy lên một bộ làm việc tương đối nhỏ mỗi khi chúng tôi kết nối lại (khởi động lại máy chủ của chúng tôi). Nếu chúng ta để nó đi quá lâu, nó sẽ chuyển sang không và trường hợp cơ sở dữ liệu thực sự bắt đầu đi vào trao đổi và cuối cùng thất bại. Trừ bộ nhớ có thể giải phóng qua nhiều ngày từ các đỉnh khi chúng tôi khởi động lại, chúng tôi thấy rằng trung bình có 10 MB mỗi kết nối.
Đi sâu vào RSS per-pid từ giám sát nâng cao, chúng ta thấy sự tăng trưởng chậm tương tự trên các kết nối ví dụ nhưng tổng RSS dường như chỉ là một proxy cho việc sử dụng bộ nhớ thực trên mỗi kết nối ( https://www.depesz.com/2012/ 06/09 / how-much-ram-is-postgresql-used / ).
Làm thế nào tôi có thể:
- Thay đổi các tham số default.postgres9.5 bên dưới để tránh tăng trưởng bộ nhớ không giới hạn trên mỗi kết nối
- Xác định những truy vấn nào gây ra sự tăng trưởng không giới hạn này và thay đổi chúng để ngăn chặn nó
- Xác định loại bộ đệm / bộ đệm nào đang gây ra sự tăng trưởng không giới hạn này để tôi có thể sử dụng loại đó để thực hiện một trong các cách trên