2

我是来自 java 背景的开发人员,是 ruby​​ on rails 的新手。我的疑问是,由于 Java 的原因,我的服务器中有 24 GB RAM,由于 JVM 限制,我无法有效地使用它,正如那篇文章 Understanding max JVM heap size - 32bit vs 64bit中所讨论的那样。Ruby On Rails 是否有与物理内存 (RAM) 相关的任何限制,我给出一个场景,是否可以使用单个 Phusion Passenger 运行 N 个 Rails 应用程序,直到我要爆破至少 20 GB 的 RAM。为什么我要问这个是我计划将 50 个学校管理应用程序放在一个服务器上,所以 50 个 rails 应用程序,是否有可能或者我会像在 java 中出现的那样出现内存不足错误。

4

1 回答 1

6

在 Rails 中管理内存并不是一个特别科学的过程。应用程序之间的差异很大,并且没有简单的基准。不过,作为一般经验法则,每个活动 Rails 实例的预算为 50-100MB。乘客有一些技巧可以在相似实例之间共享大量内存,但它只是那么有效。

至少从 Rails 的角度来看,20GB 的内存应该能够承载至少 20 个应用程序实例。但是,如果这些站点很忙,您可能希望从该池中为您的数据库预算至少 4-8GB 的​​内存。

Ruby 对可以使用多少内存没有内在限制,尤其是当它分布在许多不同的进程中时。通常,如果它对用户进程可用,则可以使用它。

如果站点不忙,它们根本不会占用任何内存。乘客将自动关闭空闲的进程以释放它们。实际上,间歇性访问的站点几乎不会产生任何影响。

于 2012-06-30T04:39:02.013 回答