2011-12-29 31 views
7

Tôi không thể tìm thấy bất kỳ tài liệu nào mô tả hiệu ứng tổng hợp kết nối cơ sở dữ liệu cho unicorn.Thực sự cần một hồ bơi kết nối db cho đường ray kỳ lân?

Unicorn dồn nhiều quy trình công nhân. Tôi đã cấu hình prefork và điều quan trọng là không chia sẻ các kết nối cơ sở dữ liệu giữa các công nhân, vì vậy tôi thiết lập lại các kết nối db sau khi rẽ nhánh.

Ứng dụng đường ray của tôi có 8 công nhân trên mỗi máy chủ và kích thước hồ bơi trong database.yml là 5, sau đó tôi thấy 45 kết nối với mysql.

Mỗi công nhân là đơn luồng xử lý 1 yêu cầu cùng một lúc. Truy vấn SQL nên được chặn. Dường như 4 kết nối khác là vô dụng? Tôi có thể đặt kích thước hồ bơi thành 1 để có hiệu suất tốt hơn không?

Trả lời

7

Vì mỗi công nhân chỉ có thể phục vụ 1 yêu cầu cùng một lúc, mỗi công nhân cũng chỉ có thể sử dụng một kết nối tại một thời điểm và không có gì thu được từ việc có nhiều kết nối hơn. Nếu bạn đặt kích thước nhóm là 1, mỗi nhân viên Unicorn sẽ mở một kết nối. Bạn có thể sẽ không nhận được sự gia tăng hiệu suất đáng chú ý nhưng bạn sẽ tiết kiệm tài nguyên bằng cách có ít kết nối mở hơn.

Các vấn đề liên quan