Rails 4 Fehler R14 auf Heroku (Speicherkontingent überschritten)

Ich habe die (anscheinend häufige) bekommenFehler R14Ich bin mir nicht sicher, wann es gestartet wurde, habe es aber nach der Installation des Papertrail-Add-ons bemerkt. Ich habe auch hinzugefügtoink nachdem ich andere gesehen habe, die es erwähnt haben. Ich habe alles versucht, was andere in anderen SO-Fragen versucht haben, aber ich kann das Problem / Speicherleck nicht zu finden scheinen.

Error R14 (Memory quota exceeded)
heroku/web.1: Process running mem=587M(114.7%)

Wenn ich dies sehe, renne ich, um dies vorübergehend zu behebenheroku restart das funktioniert schon eine weile aber ich möchte dieses problem dauerhaft beheben.

Nach dem, was ich in Papertrail sehen kann, lädt die App immer wieder dieselbe Seite (Homepage) (und nicht den Benutzerverkehr):

app/web.1: Completed 200 OK in 436ms (Views: 45.5ms | ActiveRecord: 386.2ms) 
app/web.1: May 25 18:14:52 5d2105e1-d799-4496-a2af-3785e78998db rails[9]: Oink Action: static_pages#home
app/web.1: May 25 18:14:52 5d2105e1-d799-4496-a2af-3785e78998db rails[9]: Memory usage: 378860 | PID: 19
app/web.1: May 25 18:14:52 5d2105e1-d799-4496-a2af-3785e78998db rails[9]: Oink Log Entry Complete 
heroku/web.1: source=web.1 dyno=heroku.25566769.9d9a3da0-db4c-4b51-bc53-b69be9e43cb7 sample#memory_total=209.86MB sample#memory_rss=209.83MB sample#memory_cache=0.02MB sample#memory_swap=0.00MB sample#memory_pgpgin=59278pages sample#memory_pgpgout=5555pages 

und nach 2 minuten:

heroku/web.1: source=web.1 dyno=heroku.25566769.9d9a3da0-db4c-4b51-bc53-b69be9e43cb7 sample#memory_total=293.73MB sample#memory_rss=291.94MB sample#memory_cache=0.02MB sample#memory_swap=1.77MB sample#memory_pgpgin=80890pages sample#memory_pgpgout=6147pages `

Ich habe auch aktiviertheroku labs:enable log-runtime-metrics von Anweisungen aus einer anderen FrageHier und von HerokuHier

Ich habe auch das Add-On "New Relic" hinzugefügt. Folgendes wird auf der Registerkarte "Überwachung> Instanzen" angezeigt:

Für die letzten 7 Tage:

Für die letzten 24 Stunden:

Ich bin verwirrt, wie Sie sehen können, dass die Speichernutzung nach 5/24 gesunken ist und seitdem gesunken ist, aber in den Protokollen wird die Speichernutzung angezeigtmem=587M(114.7%) und in den letzten 24 Stunden durchschnittlich 150 Millionen, daher verstehe ich nicht, was passiert. Ich hoffe jemand kann helfen. Vielen Dank.

Update 1: Gemfile hinzugefügt
#Gemfile
source 'https://rubygems.org'
ruby '2.1.1'
gem 'rails', '4.1.1'

gem 'puma', '~> 2.8.2'
gem 'turbolinks', '~> 2.2.2'
gem 'pg', '~> 0.17.1'
gem 'rack-attack', '~> 4.0.1'
gem 'memcachier'
gem 'dalli', '~> 2.7.1'
gem 'oink'
gem 'fog', '~> 1.22.0'
gem 'activeadmin', github: 'gregbell/active_admin'
gem 'dynamic_sitemaps', '~> 2.0.0'
gem 'whenever', :require => false
gem 'cancancan', '~> 1.8.0'
gem 'mini_magick', '~> 3.7.0'
gem 'carrierwave', '~> 0.10.0'
gem 'devise', '~> 3.2.4'
gem 'rolify', '~> 3.4.0'
gem 'simple_form', '~> 3.0.2'
gem 'cocoon', '~> 1.2.6'
gem 'friendly_id', '~> 5.0.3'
gem 'nokogiri', '~> 1.6.2.1'
gem 'kaminari'
gem 'impressionist', '~> 1.5.1'
gem 'validate_url'
gem 'searchkick', '~> 0.7.5'
gem 'meta-tags', '~> 2.0.0'
gem 'newrelic_rpm'


group :assets do
  gem 'sass-rails', '~> 4.0.3'
  gem 'bootstrap-sass', '~> 3.1.1.1'
  gem 'uglifier', '~> 2.5.0'
  gem 'coffee-rails', '~> 4.0.1'
  gem 'asset_sync'
  #gem 'jquery-turbolinks'
  gem 'jquery-rails'
  gem 'jbuilder', '~> 2.0.7'
end

group :production do
  gem 'rails_12factor'
end
Update 2: Server von Puma zu Unicorn geändert

Es war ziemlich einfach, den Anweisungen zu folgenHier. Und so sieht es jetzt aus, was anscheinend gut ist, aber ich vermute, es lag daran, dass die Anwendung neu gestartet wurde:

# after heroku restart
heroku/web.1: source=web.1 dyno=heroku.25566769.3770e52a-ddf3-485a-a88a-ac4fd54ab640 sample#memory_total=123.62MB

# after 4 minutes
heroku/web.1: source=web.1 dyno=heroku.25566769.3770e52a-ddf3-485a-a88a-ac4fd54ab640 sample#memory_total=276.48MB
Update 3: Die Anzahl der Unicorn-Arbeiter wurde auf 2 gesenkt

Danach ist dies der durchschnittliche Speicherverbrauch pro Dyno / Instanz in den letzten 6 Stunden nach New Relic:

Und die Ausgabe in PaperTrain (und auch LogEntries ausprobiert) war:

app/web.1: May 26 19:54:08 21ae35ee-5656-4254-9f12-5dc6bb59efa1 rails[6]: Memory usage: 426076 | PID: 6
app/web.1: May 26 19:54:08 21ae35ee-5656-4254-9f12-5dc6bb59efa1 rails[6]: Oink Log Entry Complete
heroku/web.1: source=web.1 dyno=heroku.25566769.21ae35ee-5656-4254-9f12-5dc6bb59efa1 sample#load_avg_1m=0.00 sample#load_avg_5m=0.00 sample#load_avg_15m=0.00
heroku/web.1: source=web.1 dyno=heroku.25566769.21ae35ee-5656-4254-9f12-5dc6bb59efa1 sample#memory_total=431.99MB sample#memory_rss=406.85MB sample#memory_cache=0.10MB sample#memory_swap=25.04MB sample#memory_pgpgin=198612pages sample#memory_pgpgout=94432pages 

Ich habe die Protokolle überprüft und nach 1 Stunde bekam ich den R14-Fehler und jetzt ist er nur noch sehr wenig angestiegen, fast konstant bei 432 MB und habe den Fehler nicht mehr erhalten. Das scheint also das Problem behoben zu haben! Ich werde im Laufe der Zeit aktualisieren, wenn sich dies ändert.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage