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