簡體   English   中英

耙任務內存泄漏

[英]rake task memory leak

我有一個長期運行的rake任務,隨着時間的推移,它吞噬了我所有的系統內存? 找出我的問題並深入研究問題的最快方法是什么?

我在slicehost和mysql 5上使用rails 2.3.5,ruby 1.8.7,ubuntu。

我有可以正常運行的Rails應用程序。 我有一個整夜運行的夜間工作,需要做大量工作(一些外部調用Twitter,Google等,以及使用活動記錄進行許多數據庫調用,隨着時間的推移,該工作的內存大小增加到將近4GB。我需要弄清楚闡明為什么耙任務不釋放內存。

我開始研究bleak_house,但設置起來似乎很復雜,而且一年多來還沒有更新。 我無法在本地工作,所以不願意嘗試生產。

謝謝喬爾

拋出兩個想法。 首先,如果要在此工作中循環播放,請確保您沒有保留對不需要的對象的引用,因為這將阻止它們的收集。 完成后,將它們從陣列中刪除,或其他。 另外,將定期的GC.start放入循環中,以查看它是否根本無法解決GC問題。

第二個想法是,ruby不會使用GC符號,因此,如果您的API客戶端將值存儲為符號,則最終可能會出現龐大且不斷增長的符號集,這些符號將永遠不會被重復使用。 符號很小,但是微小的東西仍然可以累加。

當然,不要加載比您需要更多的對象。 如果必須迭代很多對象,請使用#find_each批量加載AR對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM