Ruby On Rails是否对Java等内存有任何限制

时间:2012-06-30 04:22:32

标签: ruby-on-rails ruby ruby-on-rails-3 memory-management passenger

我是java背景的开发人员,是ruby on rails的新手。 我怀疑的是我在我的服务器中因为Java的原因而拥有24 GB RAM由于JVM限制而无法有效地使用它,如该帖子中所述 Understanding max JVM heap size - 32bit vs 64bit。 Ruby On Rails是否有任何与物理内存(RAM)相关的限制,我给出了一个场景,可以用单个Phusion Passenger运行N no of Rails应用程序,直到我要破解至少20 GB的RAM。为什么我要问这是因为我打算将50个学校管理应用程序放在一台服务器上,所以50个rails应用程序,是否可能或者我会出现内存错误,比如java中的内容。

1 个答案:

答案 0 :(得分:6)

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

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

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

如果网站不忙,它们根本不占用任何内存。乘客将自动降低闲置的进程以释放它们。在实践中,间歇性访问的站点几乎不会产生任何影响。