ruby-on-rails - 与 Mongrel 集群相比,使用乘客有什么优势?

标签 ruby-on-rails hosting passenger

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

Rails 团队和许多其他人建议使用乘客而不是杂种集群,但我无法找到一个明确的 list ,列出它的确切好处/优势或潜在的陷阱是什么。只是想知道是否有人可以帮助解释这一点?

passenger 是自己的服务器还是在后台使用 mongrel?

谢谢!

最佳答案

在Passenger 之前,Mongrel 是要走的路,但是要保持适当的调优,Mongrel 集群可能会令人讨厌。随着您的应用程序变得越来越复杂,每个 Mongrel 实例的内存占用量将会扩大,这可能会占用可用的磁盘缓存并降低性能,因此您必须密切关注部署中的内存分配平衡。有时您必须对其进行调整以添加或删除 Mongrels。

另一个缺点是您需要使用诸如 monit 之类的某种启动器来管理这些 Mongrel 进程,这可能会很繁琐和困难。 Mongrel 没有自带进程管理器。

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

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

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

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

在后台,Passenger 使用自己的启动器和调度系统。尽管在功能上它与 Mongrel 相似,但 Phusion 引入了许多显着的性能改进,使Passenger 的内存效率明显高于 Mongrel。

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

关于ruby-on-rails - 与 Mongrel 集群相比,使用乘客有什么优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3532838/

相关文章:

ruby-on-rails - 将现有应用程序的 Sqlite3 切换到 PostgreSQL

ruby-on-rails - 如何禁用扩展 HTTParty 的 gem 中的日志记录?

angularjs - 如何在单个服务器上提供多个前端(AngularJS)应用程序和1个后端(Laravel)应用程序?

javascript - 我的 JQuery 数据表有错误。 JQuery Datatable 在本地环境中工作正常,但在托管环境中却出现错误

ruby - 由于 g++ --> 内部编译器错误,在 ubuntu 服务器 (12.04.2) 64 位上 phusion guest nginx 模块安装错误

ruby-on-rails - Mavericks升级后MacOSX上缺少Apache httpd.h文件(**为优胜美地更新**)

ruby-on-rails - 为什么不显示验证错误消息?

ruby-on-rails - 在模型创建时生成自定义 ID

asp.net - 解析器错误消息 : Unrecognized attribute 'targetFramework' . 请注意,属性名称区分大小写

ruby-on-rails-3 - 范围未在生产中刷新。使用乘客和 apache2