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/