2011-09-07 70 views
7

幾周前我升級到Lion,完全被Ruby on Rails環境搞砸了。我已經安裝了RVM,不同的ruby版本,似乎無法找到解決方案......我認爲這是我可以升級到Lion的最糟糕的決定之一。它只給我帶來了問題。升級到OSX後紅寶石進程的內存泄露Lion

無論如何,我已經意識到渲染一個我的應用程序的頁面(它在部署服務器上運行得非常好,在其他機器上也能很好地運行)增加了20-30mb的ruby進程內存,這有點瘋狂。所以你可以想象一段時間後,我的紅寶石進程達到了2GB的內存使用,而且我的電腦不再可用了。

我看到很多人升級到獅子的問題,但我一直無法找到我的情況的解決方案。

有沒有同樣的問題?任何想法我怎麼可以嘗試解決這個問題?

感謝

+0

也許試試valgrind? – rogerdpack

+0

有同樣的問題。波爾,你找到了解決辦法嗎? –

+0

我有同樣的問題,我正在尋找解決方案。 –

回答

0

您可以使用memprof寶石(不再維護和對Ruby 1.8.7以上的版本不工作)和 memprof.com (斷開鏈接),以獲得對這一問題的底部。

此外,您可以嘗試使用Passenger,Unicorn或Thin,而不是使用默認的Webrick來查看是​​否會給您不同的行爲。

0

我不知道如何修復內存泄漏,但可以提出一種方法來控制內存並進一步排除故障。

如果你願意學習Docker,你可以在Docker容器中包含你的開發環境,同時訪問本地機器上的代碼,就像Vagrant中的共享文件夾一樣。

當您運行運行的Docker容器時,您可以指定容器可以使用的內存量限制。您的rails server進程可能會崩潰並停止容器,但至少您不必重新啓動機器。

也許這會給你更多的空間來更深入地解決問題。

Docker Run Reference,請參見「運行時對CPU和內存的限制」一節。