1

我是java背景的开发人员,在rails上是ruby的新手。 我的疑问是,我的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中的东西。Ruby On Rails是否具有像Java一样的内存限制

回答

5

在Rails中管理内存不是一个特别科学的过程。应用程序之间的差异很大,并且没有简单的基准。一般来说,每个活动Rails实例的预算为50-100MB。乘客有一些技巧在类似的事例之间分享大量的记忆,但它只是非常有效。

至少从Rails的角度来看,20GB的内存应该能够托管至少20个应用程序实例。不过,如果这些网站很繁忙,您会希望为该数据库预留至少4到8GB的内存。

对于可以使用多少内存,Ruby没有内在的限制,特别是如果它分布在许多不同的进程中。一般来说,如果它可供用户进程使用,则可以使用它。

如果网站不忙,他们根本不占用任何内存。乘客将自动减速闲置的过程以释放它们。实际上,间歇性访问的网站几乎不会产生任何影响。

相关问题