Ich habe kürzlich ein Upgrade von Ruby von 2.0 auf 2.1.5 auf meine Heroku-Webapplikation angewendet, und ich treffe ständig Speicherquotenfehler, während dies bei 2.0 und 1.9 niemals der Fall ist passiert. Es gibt ein Limit von 512MB für ein normales Heroku-Dyno, und ich führe 2 Prozesse mit Unicorn aus, zusammen mit einem Thread mit Sidekiq über zwei Dynos.Speicherauslastung mit Ruby 2.1 gegenüber Ruby 2.0 oder 1.9
Nachdem ich Phusion Passenger memory consumption increase from 1.9.3 (system) to 2.1.2 (RVM) on Ubuntu gelesen habe, habe ich versucht, die Umgebungsvariable RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR
auf 0,9 zu setzen, um Generationsmüllsammler zu deaktivieren, und es hat den Speicherverbrauch etwas verbessert, aber ließ mich nirgendwo in der Nähe was 2.0 oder 1.9 konsumiert. Da Speicher im Moment mein Hauptanliegen ist, würde ich gerne sehen, ob ich dieses Problem mit Ruby 2.1.x beheben kann anstatt zu 2.0 zurückzukehren.
Hier sind einige Diagramme das Problem demonstriert:
um kurz vor 14.00 Uhr, stufte ich Ruby 2.0.0-p598 Ruby 2.1.5 und die Speicherprobleme wurden gelöst und blieb unter der Grenze.
Dann später habe ich versucht, Ruby 2.1.5 upgraden, aber die Umgebungsvariable RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR
-0,9 Einstellung. Wie Sie sehen können, ist die Speichernutzung etwas besser als die ursprüngliche 2.1.5-Grafik, durchbricht aber immer noch die Speicherquote.
sehr interessant. Ich hätte gedacht [that] (https://www.omniref.com/blog/blog/2014/11/18/ko1-at-rubyconf-2014-massive-garbage-collection-speedup-in-ruby-2- dot-2 /) war verwandt, aber neugierig, was die Antwort hier ist. – Anthony
Ich habe auch die Version 2.2 verfolgt, aber ich bin besorgt, dass ihr Fokus hauptsächlich auf Leistungsverbesserungen im Gegensatz zu Speicherverbrauchsverbesserungen liegt, also vermute ich, dass es nicht viel helfen wird. –
Einige frühe Tester haben aufgrund des aktualisierten GC in 2.0.0-preview1 einen geringeren Speicherbedarf gemeldet. Vielleicht möchten Sie es überprüfen. – Lenart