我在使用我的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