ruby的几个web server,按照开发活跃度、并发方案及要点、适用场景等分析puma vs passenger vs rainbows! vs unicorn vs thin。git
1. thin: 长久未更新,github
2. unicorn: 未测试。web
3. opensource passenger or enterprise passenger: open source版只支持多进程*1线程,enterprise版收费,但支持多进程*多线程。性能不如其宣传的好,甚至比unicorn 和 puma差不少。ubuntu
4. rainbows!: 支持cluster模式,比puma的mem使用率稍高,ruby
5. puma: 支持cluster模式,支持多进程*多线程,可是我测试后发现,其多线程模型在原生ruby上对性能提高微乎其微。在jruby上内存消耗很是大,在robinus上则不稳定,折腾了很长时间。多线程
注意rails引用在采用多线程的web server方案时,须要注意其自己的thread.safe问题,请阅读:参考连接5. 并发
测试环境是:bitnami_redmine 2.3.1版 ubuntu 12.04 64bitwordpress
---待完善。 性能
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/