puma vs passenger vs rainbows! vs unicorn vs thin 适用场景 及 performance

ruby的几个web server,按照开发活跃度、并发方案及要点、适用场景等分析puma vs passenger vs rainbows! vs unicorn vs thin。

1. thin: 长久未更新,

2. unicorn: 未测试。

3. opensource passenger or enterprise passenger:  open source版只支持多进程*1线程,enterprise版收费,但支持多进程*多线程。性能不如其宣传的好,甚至比unicorn 和 puma差很多。

4. rainbows!: 支持cluster模式,比puma的mem使用率稍高,

5. puma: 支持cluster模式,支持多进程*多线程,但是我测试后发现,其多线程模型在原生ruby上对性能提升微乎其微。在jruby上内存消耗非常大,在robinus上则不稳定,折腾了很长时间。

注意rails引用在采用多线程的web server方案时,需要注意其本身的thread.safe问题,请阅读:参考链接5.

测试环境是:bitnami_redmine 2.3.1版  ubuntu 12.04 64bit

---待完善。

1. robin的puma vs rainbows介绍: https://ruby-china.org/topics/10832

2. rainbows官网:http://rainbows.bogomips.org/

3. puma : https://github.com/puma/puma/

4. thin : https://github.com/macournoyer/thin

5. rails 4 以下的 thread.safe 问题:https://bibwild.wordpress.com/2013/02/18/rails-and-concurrent-request-handling/

6. unicorn官网:  http://unicorn.bogomips.org/

上一篇:联合索引在B+树上的结构


下一篇:kubernetes实战(四):k8s持久化安装rabbitmq集群