为什么gitlab 6切换回独角兽?

Gitlab 6.0于昨天发布。 我很想知道为什么他们从Puma转向Unicorn 。 5之前的版本使用Unicorn 。 我觉得切换到Puma是为了更好。

这个开关有技术原因吗?

GitLab BV首席执行官,我同意Hongli的评论,“如果有问题,那么他们很可能会使用Gitlab的代码。” 我们尝试修复它们,但GitLab是最大的开源Rails应用程序之一,也是难以重现的问题。 所以最后我们选择了最实用的解决方案,转而使用Unicorn。 我们喜欢Puma,Unicorn和Passenger,并认为它们都是很棒的软件。

提交3bc484587提供了Mathieu’OtaK’Amiot的一些线索:

我们从GitLab 5.4中的Puma切换到GitLab 6.0中的独角兽。

为什么要再次切换回Unicorn?

在具有许多并发用户的系统上运行multithreading时,Puma会导致100%的CPU和更大的内存泄漏。
那是因为人们使用MRI。 使用Puma时必须使用JRuby或Rubynius。 否则世界就会崩溃。

Mathieu 在评论中补充道 :

是的,独角兽在MRI设置上更好(但更需要记忆力)。
对于Rubinius和JRuby来说,Puma更好,就是这样。

他们不能强迫人们使用Ruby Runtime的其他实现,所以他们只是回到大多数设置的最佳设置:) –


轻微的争议随之而来:

  • Puma : Hongli 评论 :

Puma的multithreading在MRI上工作得很好。
我说这是Ruby Enterprise Edition背后的作者之一,所以我从内到外了解Ruby的线程系统。
Puma的作者Evan Phoenix 也表示使用Puma和MRI工作得很好 。

如果有问题,那么很可能是Gitlab的代码。

  • Phusion Passenger Enterprise :

Mathieu’OtaK’Amiot 评论 :

乘客并不像大多数人想象的那样稳定。 一个nginx + Unicorn更稳定恕我直言。 –

鸿利 回答 :

我们每天都有大量的大型用户使用Phusion Passenger,包括开源和企业,稳定性和成功率都很高。
想想纽约时报,37signals,摩托罗拉,UPS,Apple,AirBnB。 他们中的一些甚至从独角兽转向支持乘客(开源或企业)


2014年8月更新:有一篇关于“ 使用Puma而不是Unicorn运行GitLab 7.1 ”的文章