2013-08-23 58 views

Trả lời

9

GitLab BV ở đây, tôi đồng ý với Hongli bình luận của mình rằng "Nếu có vấn đề thì họ có khả năng trong mã của Gitlab." Chúng tôi đã cố gắng khắc phục chúng nhưng GitLab là một trong những ứng dụng Rails nguồn mở lớn nhất và các vấn đề khó tái tạo. Vì vậy, cuối cùng chúng tôi chọn giải pháp thực dụng nhất, chuyển về Unicorn. Chúng tôi yêu Puma, Unicorn và Passenger và nghĩ rằng họ là tất cả những phần mềm tuyệt vời.

+0

Cảm ơn bạn đã trả lời. Cuối cùng, chúng tôi có phản hồi chính thức – Litmus

28

Các commit 3bc484587 cung cấp một số manh mối từ Mathieu 'OtaK' Amiot:

Chúng tôi chuyển từ Puma trong GitLab 5.4 để Unicorn trong GitLab 6.0.

tại sao lại chuyển trở lại Unicorn?

Puma gây ra 100% CPU và rò rỉ bộ nhớ lớn hơn khi chạy đa ithreaded trên các hệ thống có nhiều người dùng đồng thời.
Đó là vì mọi người đã sử dụng MRI. Bạn PHẢI sử dụng JRuby hoặc Rubynius khi sử dụng Puma. Hoặc người nào khác phá vỡ thế giới.

Mathieu adds in the comments:

Vâng, Unicorn là tốt hơn (nhưng nhiều bộ nhớ háo hức) trên các thiết lập MRI.
Puma tốt hơn trên Rubinius & JRuby, đó là tất cả.

Họ không thể ép buộc người sử dụng hiện thực khác của Ruby Runtime, vì vậy họ chỉ rơi trở lại thiết lập tốt nhất cho hầu hết các thiết lập :) -


cãi nhẹ xảy ra sau đó xung quanh:

Đa luồng của Puma hoạt động tốt với MRI.
Tôi nói đây là một trong những tác giả đằng sau Ruby Enterprise Edition, vì vậy tôi biết hệ thống luồng của Ruby từ trong ra ngoài.
Evan Phoenix, tác giả của Puma, has also stated that using Puma with MRI works just fine.

Nếu có vấn đề thì có khả năng là mã Gitlab.

Mathieu 'OtaK' Amiotcomments:

hành khách là không ổn định như hầu hết mọi người nghĩ. Một nginx + Unicorn là IMHO ổn định hơn.-

Honglianswers:

Chúng tôi có rất nhiều và rất nhiều người lớn sử dụng Phusion tải hành khách, cả hai mã nguồn mở và doanh nghiệp, trên cơ sở hàng ngày với sự ổn định tuyệt vời và thành công.
Hãy suy nghĩ Thời báo New York, 37 ký hiệu, Motorola, UPS, Apple, AirBnB. Một số trong số họ thậm chí chuyển ra khỏi Unicorn ủng hộ của hành khách (hoặc mã nguồn mở hoặc Enterprise)


Cập nhật tháng 8 năm 2014: có một bài viết về giám đốc điều hành "Running GitLab 7.1 using Puma instead of a Unicorn"

+0

Đoán bạn đúng. Nhưng sau đó tôi không thể tìm thấy bất kỳ lý do nào để chuyển từ Unicorn sang Puma trong [phiên bản 5.1.0] (https://github.com/gitlabhq/gitlabhq/commit/1fe61284afc08796d09f1626a198a1c35f0a62aa). – Litmus

+1

Họ chuyển sang Puma vì nó sử dụng ít bộ nhớ hơn Unicorn. Trong thực tế, Unicorn và Puma đều có ưu và nhược điểm riêng của họ, không ai trong số họ là hoàn toàn tốt hơn khác. Nếu bộ nhớ và sự ổn định là một mối quan tâm thì người dùng cũng có thể sử dụng Phusion Passenger Enterprise sử dụng ít bộ nhớ * và * ổn định hơn ([source] (https://github.com/phusion/passenger/wiki/Puma-vs-Phusion - Hành khách)). – Hongli

+1

Tôi là tác giả của nhận xét này, 'Đó là vì mọi người đã sử dụng MRI. Bạn PHẢI sử dụng JRuby hoặc Rubynius khi sử dụng Puma. Hoặc nếu thế giới phá vỡ.' Và có, Unicorn là tốt hơn (nhưng nhiều bộ nhớ háo hức hơn) trên các thiết lập MRI. Puma là tốt hơn trên Rubinius & JRuby, đó là tất cả. Họ không thể ép buộc mọi người sử dụng các triển khai khác của Ruby Runtime, vì vậy họ chỉ quay trở lại thiết lập tốt nhất cho hầu hết các thiết lập :) –