Khi nó quay ra, các thông điệp tới increase max_dbs_open
là lúc tốt nhất một câu trả lời một phần và lúc tồi tệ nhất là gây hiểu nhầm. Trong trường hợp của chúng tôi, vấn đề không phải là số lượng cơ sở dữ liệu được mở mà rõ ràng là số lượng kết nối HTTP được sử dụng bởi nhiều lần sao chép của chúng tôi.
Mỗi sao chép có thể sử dụng min(worker_processes + 1, http_connections)
nơi worker_processes
là số lượng công nhân được gán cho mỗi nhân rộng và http_connections
là số lượng tối đa các kết nối HTTP được phân bổ cho mỗi nhân rộng như mô tả in this document.
Vì vậy, tổng số lượng kết nối sử dụng là
number of replications * min(worker_processes + 1, http_connections)
Giá trị mặc định của worker_processes
là 4 và giá trị mặc định của http_connections
là 20. Nếu có 100 lần lặp lại, tổng số lượng kết nối HTTP được sử dụng bởi sao chép là 500. Một cài đặt khác, max_connections
, xác định số lượng kết nối HTTP tối đa mà máy chủ CouchDB sẽ cho phép như được mô tả in this document. Giá trị mặc định là 2048.
Trong trường hợp của chúng tôi mỗi người dùng có hai lần nhắc lại - một từ người sử dụng cơ sở dữ liệu tổng thể và khác từ cơ sở dữ liệu tổng thể cho người dùng. Vì vậy, trong trường hợp của chúng tôi, với cài đặt mặc định, mỗi lần chúng tôi thêm người dùng, chúng tôi đã thêm 10 kết nối HTTP bổ sung cuối cùng sẽ thổi qua mặc định max_connections
.
Kể từ lần lặp của chúng tôi là tối thiểu và chỉ có một lượng nhỏ dữ liệu được chuyển từ người dùng đến tổng thể và từ các bậc thầy cho người dùng, chúng tôi đã gọi lại số worker_processes
, http_connections
, tăng max_connections
và tất cả là tốt.
CẬP NHẬT
Một vài phát hiện khác
Nó là cần thiết để nâng cao ulimit về quy trình để cho phép nó có kết nối cởi mở hơn
Tạo lặp quá nhanh cũng gây ra các vấn đề. Nếu tôi quay trở lại nhanh như thế nào tôi tạo ra bản sao mới nó cũng giúp giảm bớt vấn đề. ymmv.
Đã được vấn đề này gây ra bởi vì các lần lặp từ mỗi cơ sở dữ liệu người dùng và các cơ sở dữ liệu tổng thể là giữa hai quá trình CouchDB khác nhau? Tôi đang cố gắng làm một cái gì đó tương tự, nhưng cơ sở dữ liệu người dùng và cơ sở dữ liệu chủ được lưu trữ trên cùng một máy chủ để hy vọng tôi tránh sử dụng bất kỳ IPC nào. – pokstad