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

时间:2013-08-23 08:49:13

标签: ruby-on-rails passenger unicorn gitlab puma

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

这种转换有技术原因吗?

2 个答案:

答案 0 :(得分:30)

commit 3bc484587提供了Mathieu 'OtaK' Amiot的一些线索:

  

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

     
    

为什么要再次切换回Unicorn?

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

Mathieu adds in the comments

  

是的,独角兽在MRI设置方面更好(但记忆力更强)   彪马在Rubinius& amp; JRuby,就是这样。

     

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


随之而来的是轻微的争议:

  

Puma的多线程在MRI上工作得很好   我说这是Ruby Enterprise Edition背后的作者之一,因此我从内到外了解Ruby的线程系统   Evan Phoenix,Puma的作者,has also stated that using Puma with MRI works just fine

     

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

Mathieu 'OtaK' Amiot comments

  

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

Hongli answers

  

我们每天都有很多大型用户使用Phusion Passenger,包括开源和企业,稳定性和成功率很高。
  想想纽约时报,37signals,摩托罗拉,UPS,Apple,AirBnB。他们中的一些人甚至转而离开Unicorn,转而使用Passenger(开源或企业)


2014年8月更新:有一篇关于“Running GitLab 7.1 using Puma instead of a Unicorn”的文章

答案 1 :(得分:11)

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