【发布时间】:2011-03-09 05:50:17
【问题描述】:
我在我的 Ruby on Rails 应用程序 (v2.3.8) 中使用 collectiveidea's delayed_job,并在 8GB RAM Slicehost 机器(Ubuntu 10.04 LTS,Apache 2)上运行大约 40 个后台作业。
假设我在没有工作人员运行的情况下通过 ssh 进入我的服务器。当我执行free -m 时,我发现我通常使用 8 个 RAM 中的大约 1GB。然后在启动工作人员并等待大约一分钟让代码使用它们之后,我最多大约 4GB .如果我在一两个小时后回来,我将达到 8GB 并进入交换内存,我的网站将产生 502 错误。
到目前为止,我一直在杀死工人并重新启动他们,但我宁愿解决问题的根源。有什么想法吗?这是内存泄漏吗?或者,按照朋友的建议,我是否需要想办法运行垃圾回收?
【问题讨论】:
-
这听起来像是内存泄漏,但它可以在你的deleayed_job运行的代码中,它一定不能在delayed_job中。一些要审查的代码可能会有所帮助。
-
还要记住,1.9 和 1.8 永远不会将内存还给操作系统。
标签: ruby-on-rails apache ubuntu memory-leaks delayed-job