2017-02-22 64 views
0

與Herku一起運行滑軌應用程序,在過去的一個月裏,我們正在獲取超過內存配額(R14)的問題,很難找到根本原因,但沒有得到任何確切的原因?是否因爲web_concurrency?也我們使用new_relicHeroku的滑軌

滑軌:3.2.22

紅寶石:1.9.3

服務器:麒麟,WEB_CONCURRENCY是5

作爲總共20個DYNOS我們使用,以及管理與進程調度

enter image description here

+0

可能是該應用程序泄漏內存。由於您正在使用新文物,請查看他們的日誌以查看內存使用情況圖表。如果圖表仍然顯示內存增加(而不是飽和),即使在重新啓動dynos後很長一段時間(可能是幾個小時或一天),它仍然在泄漏內存。如果是這樣的話,那麼我不知道是否有人可以在沒有完整的源代碼的情況下幫助你。我很難狩獵這些。如果可能,第一個建議將升級到Ruby 2.x。它在1.9.x以上的垃圾收集方面有了巨大的改進 – Sajan

回答

0

你的整個堆棧的回報率是非常過時,現在的Heroku彪馬認可作爲其最好的服務器,它吃得更少的內存(你可以在http://puma.io/在檢查其基準) puma benchmark

不過,如果問題開始冒出我寧願搜索寶石或一段代碼,要麼造成這種內存消耗(activeadmin,rmagick等)。此外,一個快速但更昂貴的解決方案將增加您的動態(Performance-L或Performance-M) 隨着WEB_CONCURRENCY嘗試降低它並檢查是否解決了R14問題

+0

對於puma,但我們確保我們的代碼線程安全的權利? – django

+0

您使用Rails 3.2.22,所以基本框架至少是線程安全的。它接近我,你只是試圖製作一個傳統的軌道應用程序「只是工作」。 您可以通過添加hw或改進sw來解決您的問題。軟件之一(升級ruby版本,rails框架和使用puma(而不是獨角獸)將緩解你的許多問題。如果你現在沒有時間,最好的辦法是提高你的dyno性能。如果它是一個內存泄漏問題,你會不時受到R14的煩惱,唯一的區別是三角洲會更高,更好的雷諾 – Codextremist