使用Passenger而不是Mongrel群集有什么好处?

时间:2010-08-20 16:26:18

标签: ruby-on-rails hosting passenger

这可能是今天最愚蠢的问题,但是......

Rails团队&许多其他人建议使用乘客而不是杂种群,但我找不到明确的清单,列出了这个或潜在陷阱的确切利益/优势。只是想知道是否有人可以帮助解释这个?

乘客也是自己的服务器,还是在引擎盖下使用杂物?

谢谢!

1 个答案:

答案 0 :(得分:9)

在乘客之前,Mongrel是可行的方式,但是Mongrel集群可能会让您保持适当的调整。随着应用程序复杂性的增加,每个Mongrel实例的内存占用量将会扩大,这会占用可用的磁盘缓存并降低性能,因此您必须密切关注部署中的内存分配平衡。有时你必须调整它来添加或删除Mongrels。

另一个缺点是你需要使用像monit之类的启动器管理这些Mongrel进程,这些可能很繁琐而且很难。 Mongrel并没有自己的流程经理。

另一个严重问题是每个Mongrel都被锁定到一个特定的应用程序,并且在一个应用程序和另一个应用程序之间转移负载非常难以管理。

Mongrel还依赖于您必须自行配置的外部负载均衡器。

Passenger将处理启动所有Rails引擎进程,并将尽力有效地分配内存。如果您有许多优先级相互冲突的站点,Passenger将会按需启动服务器,并在不使用服务器时将其修剪掉。

通过查找tmp/restart.txt触发器文件,Passenger也可以非常快速地重新启动应用程序的所有实例。您不必杀死任何进程或等待重启。

引擎盖下,Passenger使用自己的发射器和调度系统。虽然在功能上它与Mongrel类似,但是Phusion引入了许多显着的性能改进,使得Passenger比Mongrel显着提高了内存效率。

Passenger是一个完整的软件包,可以正常运行并且非常容易管理。 Mongrel只是一个非常基本的Web服务器。

相关问题