【问题标题】:adding memory to rails 3 app with memcached, redis, apache passenger使用 memcached、redis、apache 乘客向 Rails 3 应用程序添加内存
【发布时间】:2012-02-08 06:14:50
【问题描述】:

我正在使用 apache 乘客在云 VPS 上托管一个 rails 3 应用程序,它与 memcached 和 redis 对话。为简单起见,我们假设所有这些服务都在机器上运行。

我能够在不重新启动 VPS 的情况下动态地向该服务器添加更多内存。我想知道“告诉”apache 乘客/memcached/redis 新内存可供使用的最佳做法是什么。这是这些服务自动检测到的吗?我是否必须重新启动我的服务器/memcached/redis 才能使新内存有用?希望不会……

如果有任何想法,将不胜感激。

【问题讨论】:

    标签: ruby-on-rails memcached redis vps


    【解决方案1】:

    不确定堆栈的所有部分,但乘客线程会随着它们需要更多内存而增长,并且当它用完时,你的盒子会开始触发交换。所以基本上它认为你的盒子无论如何都有无限的记忆。在乘客线程的情况下,添加内存应该没问题,如果您的每个乘客线程的内存占用量不断增长,就会使用它。但是为了增加乘客将运行的最大线程数,为了真正使用您添加的新内存,您需要重新启动 apache,因为这是在您的 httpd 配置中设置的。

    对于 memcached 之类的东西,缓存的大小是在您启动 memcached 时确定的,因此添加内存不会增加您的 memcached 大小。对于您配置其最大内存使用量的任何东西也是如此,它们很可能都需要您更改配置并重新启动。

    【讨论】:

    • 好的,有道理。后续问题——如果我在乘客处理请求时关闭 memcached,对 Rails.cache 的调用会引发运行时异常吗?
    猜你喜欢
    • 2013-07-15
    • 1970-01-01
    • 2011-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-01
    • 1970-01-01
    相关资源
    最近更新 更多