2016-12-14 36 views
1

我的問題:
這是典型的內存膨脹,內存泄漏,或者只是壞服務器配置的?如何在Heroku的Rails應用程序中防止R14錯誤和交換內存使用?

首先,我將

enter image description here

正如你所看到的,我一直在用交換內存增加內存使用的屏幕截圖。

此外,根據Heroku文檔設置我的Puma服務器config/puma.rb文件後,我得到一個恆定的平臺,然後增加內存。

我正在運行愛好者dyno 1x(512 mb)與0名工人。

我WEB_CONCURRENCY變量設置爲1個

我RAILS_MAX_THREADS也被設置爲1個

MIN_THREADS也被設置爲1

這裏是我的配置/ puma.rb文件

workers Integer(ENV['WEB_CONCURRENCY'] || 2) 
threads_count = Integer(ENV['RAILS_MAX_THREADS'] || 5) 
threads threads_count, threads_count 

preload_app! 

rackup  DefaultRackup 
port  ENV['PORT']  || 3000 
environment ENV['RACK_ENV'] || 'development' 

on_worker_boot do 
    # Worker specific setup for Rails 4.1+ 
    ActiveRecord::Base.establish_connection 
end 

我正在使用脫軌的寶石從我的寶石中測量內存使用情況。

我正在使用rack-mini-profiler & memory_profiler以每頁爲基礎進行測量。

允許應用程序運行結束後,這裏是以下幾點:

enter image description here

正如你所看到的應用程序不會超過其極限。如果任何人有任何有意義的建議,請隨時回答這個問題。

回答

0

上述提到的動態和美洲獅正在生產這份報告。

enter image description here

所以,我們現在只能通過交換內存偶爾不超過幾MB只是偶爾打23 MB。該應用程序使用了很多寶石,你可以看到我們正處於512 MB的限制之下。

我使用Heroku的下列文件:
爲了讓您的PUMA服務器配置正確
https://devcenter.heroku.com/articles/deploying-rails-applications-with-the-puma-web-server

對於R14內存錯誤
https://devcenter.heroku.com/articles/ruby-memory-use

相關問題