-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
Description
What are the main features provided by these web servers, respectively?
Thin
- 单线程多进程
- 比较老的一个服务器,停止开发了
- 然鹅,我感觉它还是挺高效的
Unicorn
- 单线程多进程的实现
- 一个进程处理一个请求
Puma
- Rails 5 的默认服务器
- 多线程多进程(Puma 2.0 以前是单线程)
- 一个线程处理一个请求
Rainbows
- 多进程多线程,基于 Unicorn 开发。
- Rainbows 和 Unicorn 是同一作者实现的
- 基本用法、配置 和 Unicorn 几乎一样
Comparing Puma v.s. Unicorn, what are the pros and cons?
Puma 和 Unicorn 之间的性能差异并不是很大。感觉两个之间应用场景不同。
大型应用使用 Unicorn 更好一些,希望节省服务器资源的小型应用更适合用 Puma。
Unicorn 提供了很多通过信号控制进程的手段,方便系统管理员干预应用服务器运行。
在单进程模式下 Puma 只有1个工作进程,单 Unicorn 仍然会启动 master-worker 模式,因此Puma的单进程更节省内存。
Puma的线程可以根据请求自动伸缩,对于请求量小的应用,比较节省资源。
PS: Puma、Unicorn 的进程数量不要开太多,最好和 CPU 的核数相等即可。