2012-04-11 10 views
0

Wir laufen 2 Schienen-Anwendung auf dem Server mit 4 GB RAM. Beide Server verwenden Rails 3.2.1 und wenn sie entweder im Entwicklungs- oder im Produktionsmodus laufen, essen die Server Ram mit unglaublicher Geschwindigkeit und verbrauchen bis zu 1,07 GB RAM pro Tag. Wenn der Server nur 4 Tage lang läuft, wurden alle Speicheralarme in der Überwachung ausgelöst und wir hatten nur 98 MB RAM frei.Rails Server Memory Leck/Blähung Problem

Wir versuchten Active-Record-Optimierung im Zusammenhang mit Blähungen, aber immer noch keinen Effekt. Bitte helfen Sie uns herauszufinden, wie wir das Problem verfolgen können, welches der Controller die Schuld trägt.

Verwenden von MySQL-Datenbank und Webrick-Server. Danke!

+0

Sie verwenden Webrick in der Produktion? – Ernest

+0

Sie können Rely RPM Tools verwenden, um zu überprüfen, wats geht weiter. –

+1

Stab im Dunkeln: psych (yaml Parser) leckt Speicher in 1.9.2 - überprüfen YAML :: ENGINE –

Antwort

1

Dies ist unglaublich schwer zu beantworten, ohne die Projektdetails selbst zu betrachten. Obwohl ich ziemlich sicher bin, dass Sie Webrick nicht in Ihrem Zielproduktionsmodell verwenden werden (richtig?), Prüfen Sie, ob es sich unter Passagier oder wie auch immer Ihre Wahl verhält.

Auch ohne die Details des Projekts zu wissen, würde ich vorschlagen, Funktionen wie PDFs, CSV-Parsing, etc. zu sehen. Ein Fall, wo PDF-Dateien haben Ressourcen in ähnlicher Weise zu essen gesehen, so wie 5mb nicht Müll gesammelten Speicher für jeden Lauf.

Viel Glück.

+0

Wenn Passagier verwenden gibt es eine [PassengerMaxRequests] (http://www.modrails.com/documentation/Users%20guide% 20Apache.html # PassagierMaxRequests) Option, die Sie verwenden können, um Serverinstanzen nach einer bestimmten Anzahl von Anforderungen neu zu starten. Obwohl es klar besagt, dass Sie Speicherverlustprobleme in Ihrer App beheben sollten. – theodorton