我在使用我的Ruby on Rails应用程序(v2.3.8)时使用collectiveidea's delayed_job,并在8GB RAM Slicehost机器上运行约40个后台作业(Ubuntu 10.04 LTS,Apache 2)。延迟作业泄漏内存?
比方说,我ssh到我的服务器没有工人运行。当我做free -m
时,我看到我通常使用大约1GB的RAM。然后,在启动工作人员并等待大约一分钟时间以供代码使用它们后,我达到了大约4GB。如果我在一两个小时内回来,我会在8GB和交换内存,我的网站将产生502错误。
到目前为止,我刚刚杀死工人并重新启动他们,但我宁愿修复问题的根源。有什么想法吗?这是内存泄漏吗?或者,如朋友所说,我是否需要找出运行垃圾收集的方法?
这听起来像一个内存泄漏问题,但它可以在您的代码中由deleayed_job运行,它不得处于delayed_job中。一些代码审查可能会有所帮助。 – jigfox 2010-06-28 16:56:39
也记住,1.9和1.8永远不会将内存送回操作系统。 – tliff 2010-06-28 17:37:01