Ich habe Richard Schneeman Artikel gelesen, und eine Reihe von anderen. ;-) Ich kämpfe immer noch damit.Welche Konfiguration für Rails 3.2.22.2 + Puma + Heroku?
Hier einige Edelsteine ich in meinem Gemfile zu Benchmark meine App hinzugefügt haben:
gem 'airbrake'
gem 'newrelic_rpm'
gem 'stackprof'
gem 'derailed', group: :development
gem 'rack-mini-profiler'
gem 'flamegraph'
gem 'memory_profiler'
gem "skylight"
Nach vielen Benchmarks in der Entwicklung und env in Inszenierung, weiß ich, wo meine app nicht schnell genug ist, aber es gibt nicht Speicherleck (einige kleine Mem Blähungen manchmal vielleicht).
newapp-Staging App ist die neue Version (aka: neue Frontend, aktualisiert Edelsteine, optimierte Abfragen, ...) von oldapp Produktion App. Bitte werfen Sie einen Blick auf die Screenshots (oldapp Produktion Verwendung webrick, newapp-Staging Verwendung puma)
hier So kommt 2 einfache Fragen:
Frage # 1
newapp- Inszenierung App verwendet Ruby '2.2.0' & Rails '3.2.22.2' und ich kann nicht sicherstellen, dass es Threadsafe ist wegen meines Codes und der damit verbundenen Edelsteine, also ... Ich muss 1 Thread auf einmal verwenden. Ist Puma hier ein Vorteil? Metriken sagen mir nicht. ODER ... meine Konfiguration ist nicht gut. (Fehlende preload_app vielleicht, oder andere Dinge!?) Hier ist meine procfile:
web: bundle exec puma -t 1:1 -p ${PORT:-3000} -e ${RACK_ENV:-development}
worker: bundle exec rake jobs:work
Frage # 2
Einhorn als Ersatz verwendet werden könnte?
Vielen Dank für Ihre Zeit und Ihre Ratschläge.
Prost