Ich habe eine Rails 3.2.8 App läuft auf Heroku Cedar mit Ruby 1.9.3. Die App läuft gut, wenn sie gestartet wird, aber nach ungefähr einem Tag ununterbrochener Verwendung, sehe ich R14-Fehler in meinen Protokollen. Sobald die Speicherfehler beginnen, gehen sie nicht mehr verloren, auch wenn die App mehrere Stunden nicht benutzt wird.Wie kann ich ein Speicherleck auf Heroku finden?
Sollte der Garbage Collector nach einer Weile nicht mehr benötigte Objekte bereinigen und die Speicherlast reduzieren? Es scheint, dass dies auf Heroku nicht passiert. Im Allgemeinen beginnt die Speicherauslastung nach dem Ausführen einiger Berichte mit mehreren tausend Datenzeilen zu steigen, obwohl die Ergebnisse paginiert werden.
Wie kann ich das Speicherleck finden? Plugins wie dreek_house sind veraltet oder laufen in der Heroku-Umgebung nicht gut. Kann ich die GC-Einstellungen anpassen, um sie aggressiver zu machen?
Ich habe ein neues Relikt installiert, aber es gibt mir nicht den Grad an Detail, den ich brauche –
newrelic ist ziemlich nutzlos, um Speicherprobleme zu beheben. Es gibt Ihnen einige GC-Informationen, aber nichts, um ein Problem zu identifizieren. – 2mia
Einverstanden. NewRelic ist hilfreich für viele Dinge, aber das Debugging von Speicherlecks gehört nicht dazu. – bloudermilk