【问题标题】:Multiple rail apps using Apache and Mongrel使用 Apache 和 Mongrel 的多个铁路应用程序
【发布时间】:2010-09-18 20:11:02
【问题描述】:
我实际上正在开发一个包含大约 15 个模块的应用程序,所有这些模块都使用同一个数据库。
我正在使用 Apache + Mongrel,我无法使用Passenger,因为我在 Windows 上工作(请原谅我犯了这个致命的罪过!)
以下哪种方法更好?
- 部署多个小导轨
使用虚拟服务器的应用程序
每个人都有一对杂种
申请。
- 仅部署大型 Rails 应用程序
我担心正在运行的 mongrel 的数量和内存/cpu 负载。
【问题讨论】:
标签:
ruby-on-rails
mongrel
【解决方案1】:
似乎一个应用程序最适合您的场景......正如其他人所说......
一个好的经验法则是,行为平均的 mongrel 将消耗 60mb 的内存(或更少)...取出可用的总 RAM,减去任何其他服务(数据库、memcache 等),然后计算你可以从剩余的内存中剩下多少块馅饼。
你总是可以从那里放大或缩小它们......
【解决方案2】:
听起来将所有模块集成到一个全面的 Rails 应用程序中会更好地利用您的硬件。
恕我直言,Rails 的主要弱点是运行低流量或非常低流量的应用程序所需的资源量。另一方面,少数杂种可以为大量流量提供服务。
【解决方案3】:
我建议部署一个单一的 Rails 应用程序。
我使用request_routing 插件驱动 3 个域从一个大型 Rails 应用程序共享同一个数据库。
我正在运行 4 个 mongrel,目前看来已经足够了,但是 YMMV。
【解决方案4】:
这取决于您希望同时拥有多少客户。一个杂种,一次一个客户端(直到 Rails 2.2),因为 Rails 当前没有线程化。
如果您不希望同时有几个用户,那么两个就足够了。对于没有用户特定动态内容的页面,您可以通过使用页面缓存绕过 mongrel 来提高该数字。
真正确定的唯一方法是测试系统。
根据我的经验,对于一次只有几个用户的中等活跃网站,您至少需要 4 个杂种。