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

Lit*_*mus 17 ruby-on-rails passenger unicorn gitlab puma

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

这个开关有技术原因吗?

Von*_*onC 31

提交3bc484587提供一些线索马修"OTAK"阿米奥特:

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

为什么要再次切换回Unicorn?

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

Mathieu 在评论中补充道:

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

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


轻微的争议随之而来:

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

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

Mathieu'OtaK'Amiot 评论:

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

鸿利 回答:

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


更新2014年8月:有一条关于" 运行GitLab 7.1使用的,而不是一个独角兽彪马 "

  • 至于*"那是因为人们使用MRI.你在使用Puma时必须使用JRuby或Rubynius.否则世界会分崩离析."*评论 - 这是错误的.Puma的多线程在MRI上工作得很好.我说这是Ruby Enterprise Edition背后的作者之一,因此我从内到外了解Ruby的线程系统.Puma的作者Evan Phoenix也表示使用Puma和MRI工作得很好(https://news.ycombinator.com/item?id=5995142).如果有问题,那么很可能是Gitlab的代码. (8认同)

Syt*_*dij 12

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

  • 简单说明一下,GitLab 最终迁移到了 Puma:https://about.gitlab.com/blog/2020/07/08/migration-to-puma-on-gitlab (2认同)