Phusion Passenger消耗大量RAM

时间:2014-11-11 11:09:17

标签: ruby-on-rails ruby-on-rails-4 nginx passenger

我有使用Passenger + Nginx的RoR应用程序。

我也有ImageMagick用于图像的常规任务。

在某一天(昨天 - 明天)我看到我的应用程序崩溃了,万一内存不足!

ImageMagick写入日志'无法分配内存'。

当我检查空闲内存时,我发现只有大约120MB空闲。 (摘要是1GB)。

大多数部分使用乘客。

我重新开始了,一切都变好了。

这是什么原因?

1 个答案:

答案 0 :(得分:1)

  1. 首先,您是否使用了ImageMagick的所有功能,如果不将ImageMagick更改为MiniMagick(您节省了部分内存)。

  2. 下一步图像处理,你如何使用图像?总是可以异步执行(在cron中使用resque / sidekiq / rake任务 - "较小的解决方案"),你可以节省一些MB ..

  3. 乘客,对记忆要求很高。尝试像Thin / Puma这样的小东西。

  4. 您确定,您的代码没有内存泄漏吗?如果你正在使用ruby 2.1+,有几种工具可以检测它,例如excelent article,或者如果没有,尝试使用Java内存分析器在JRuby中运行你的应用程序,例如VisualVM < / p>

  5. 其他一些问题需要考虑,你真的需要完整的Rails吗? Rails很大,需要很多内存,可能Sinatra或简单的API Grape就足够了......