ruby-on-rails - Ruby On Rails 是否像 Java 一样对内存有任何限制

标签 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) 相关的限制,我给出了一个场景,在我要爆破至少 20 GB 的 RAM 之前,是否可以使用单个 Phusion Passenger 运行 N 个 Rails 应用程序。为什么我问这个是因为我计划将 50 个学校管理应用程序放在一台服务器上,所以 50 个 rails 应用程序,是否有可能,或者我会像进入 java 的东西那样出现内存不足错误。

最佳答案

在 Rails 中管理内存并不是一个特别科学的过程。应用程序之间的差异很大,没有简单的基准。不过,根据一般经验,每个事件 Rails 实例的预算为 50-100MB。 Passenger 有一些技巧可以在相似的实例之间共享大量内存,但它只是非常有效。

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

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

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

关于ruby-on-rails - Ruby On Rails 是否像 Java 一样对内存有任何限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11271378/

相关文章:

ruby-on-rails - Rails 3.1 引擎的 Assets

ruby-on-rails - 请求 token 的 OAuth 调用产生 404 错误

Ruby 按条件搜索哈希

ruby - 创建一个散列,其中键是字符串,值是数字

Ruby:否定传递给 proc 的散列?

ruby-on-rails - Rails 在使用单个资源更新时没有路由匹配 POST url

ruby-on-rails - 使用 Hstore 使用 Rails 查询进行排序

ruby-on-rails - Heroku Push - Git 推送到 Heroku 时出错

javascript - 格式为 JS 时渲染无布局(需要干燥)

jquery - 使用 Rails 3、jquery 和 ajax 的简单喜欢/不喜欢按钮