这可能是今天最愚蠢的问题,但......
Rails团队和许多其他团队建议使用乘客而不是杂种群集,但我找不到明确的清单,列出了这个或潜在陷阱的确切利益/优势.只是想知道是否有人可以帮助解释这个?
乘客也是自己的服务器还是在引擎盖下使用杂种?
谢谢!
在乘客之前,Mongrel是可行的方式,但是Mongrel集群可能会让你保持适当的调整.随着应用程序复杂性的增加,每个Mongrel实例的内存占用量将会扩大,这会占用可用的磁盘缓存并降低性能,因此您必须密切关注部署中的内存分配平衡.有时你必须调整它来添加或删除Mongrels.
另一个缺点是你需要使用某种类似的启动器来管理这些Mongrel进程monit
,这些可能是繁琐而困难的.Mongrel并没有自己的流程管理器.
另一个严重的问题是每个Mongrel都被锁定到特定的应用程序,并且在一个应用程序和另一个应用程序之间转移负载非常难以管理.
Mongrel还依赖于您必须自己配置的外部负载均衡器.
Passenger将处理启动所有Rails引擎进程并将尽最大努力有效地分配内存.如果您有许多优先级相互冲突的站点,Passenger将在按需启动服务器时做得很好,并在不使用时将其修剪掉.
通过查找tmp/restart.txt
触发器文件,Passenger也可以非常快速地重新启动应用程序的所有实例.您不必杀死任何进程或等待重新启动.
在引擎盖下,Passenger使用自己的发射器和调度系统.虽然在功能上它与Mongrel类似,但是Phusion引入了许多重要的性能改进,使得Passenger比Mongrel显着提高了内存效率.
乘客是一个完整的包,只是工作,并且非常容易管理.Mongrel只是一个非常基本的Web服务器.