Trước tiên, xin vui lòng đọc câu hỏi kinh điển của chúng tôi về Kế hoạch năng lực .
Lời khuyên cụ thể mà bạn đang yêu cầu là tư vấn lập kế hoạch năng lực và bạn sẽ phải tự mình giải quyết vấn đề đó cho môi trường cụ thể của bạn.
Thứ hai, bạn đang nhìn vào điều này sai.
Dung lượng bộ nhớ (hoặc bất kỳ tài nguyên nào khác) mà bạn không quyết định số lượng kết nối bạn đã đặt, số lượng kết nối bạn cần cho biết mức độ khó khăn mà máy chủ bạn phải mua.
Các yêu cầu tài nguyên trên mỗi kết nối được đưa ra trong hướng dẫn chi tiết đáng kể, cũng như được thảo luận trên Wiki mà bạn liên kết đến. Chỉ ra những gì môi trường của bạn cần (hoặc đưa ra một phỏng đoán có giáo dục) và đảm bảo phần cứng bạn sẽ chạy có thể xử lý những gì bạn sẽ ném vào nó.
Cụ thể lại: giới hạn kết nối và kích thước nhóm, bạn nên có các kết nối "đủ" để đáp ứng các yêu cầu của ứng dụng của bạn - trên một máy chủ hoặc thông qua một nhóm / bouncer.
"Đủ" là một số tương đối: Một ứng dụng tạo (và liên tục sử dụng lại) một kết nối chỉ yêu cầu một kết nối. Một ứng dụng thiết lập kết nối cho mỗi người dùng cuối đăng nhập yêu cầu nhiều kết nối DB như người dùng có.
Các giá trị mặc định cho cả Postgres và pgbouncer
được coi là mặc định :
100 kết nối cơ sở dữ liệu là rất nhiều cho người điển hình ném Postgres vào một môi trường.
Các nhà phát triển có thể sẽ không cần nhiều hơn 10. Bất kỳ ai khác sẽ biết đủ để tăng số lượng.
20 kết nối từ pgbouncer
mỗi nhóm DB có nghĩa là bạn có thể nhận được 4 nhóm trỏ đến một máy chủ và không vượt quá giới hạn kết nối Postgres mặc định.
Có thể có nhiều tài nguyên được gộp chung trong việc pgbouncer
chỉ vào một cơ sở dữ liệu phụ trợ và bạn luôn muốn có một số kết nối có sẵn trên các máy chủ phụ trợ của mình.
Nếu mặc định không phù hợp với môi trường của bạn, bạn sẽ phải thay đổi chúng.
Hãy nhớ rằng các kết nối gộp không có nghĩa là "luôn luôn kết nối mọi kết nối cơ sở dữ liệu có sẵn".
Điểm pgbouncer
như bạn lưu ý là sử dụng lại các kết nối. Việc đạt được hiệu quả ở đây không yêu cầu bạn buộc mọi kết nối khả dụng, chỉ đơn giản là bạn không ngắt kết nối, kết nối lại, đàm phán lại SSL, xác thực lại cơ sở dữ liệu và chạy lại các truy vấn thiết lập kết nối của bạn mỗi lần.