2015-08-25 35 views
1

我的Ruby on Rails應用程序正在Heroku上運行,其中具有512兆字節RAM的測功機。它幾乎是從應用程序啓動時使用的所有RAM,並且從那裏只會變得更糟。我沒有在啓動時從數據庫加載大量數據,所以不明白爲什麼它使用了太多的內存。如何在Rails應用程序的內存中剖析生產紅寶石

如何在生產環境中分析我的應用程序,以便了解內存使用情況來自哪裏?我明白我可以選擇添加另一個測功機或增加測功機的記憶,但我想先了解發生的事情。

+0

什麼'htop'? =) –

+0

我看過這個,但我使用Mac OSX,而​​htop似乎是該操作系統的bug。 – Obromios

+0

您是否無法模擬開發環境中的泄漏?開發環境中的內存使用情況如何? – Emil

回答

2

Heroku有一個log-runtime-metrics功能來監視內存使用情況。

您可以運行這個來啓用:

heroku labs:enable log-runtime-metrics 

和內存使用情況將在服務器日誌中看到。

請參閱Heroku Labs: log-runtime-metrics瞭解更多信息。

此外,您可以使用New Relic進行內存分析。

查看documentation瞭解更多詳情。

,我建議對於內存分析的另一個真棒資源是rbkit

+1

這些都很有用。對rbkit的一個很好的介紹是[here](http://rbkit.codemancers.com/docs/getting-started)。你可以在生產中安全地運行rbkit嗎? – Obromios

+0

@Obromios Rbkit是爲了解決你正面臨的這個問題,但它還沒有準備好用於生產,因爲我們正在積極開發其他功能,如CPU分析和可能打破很多東西:)(Rbkit開發人員在這裏) – Emil