Niedawno zaktualizowałem tory z wersji 4.0.4 do 4.2, a także zależne od nich zalety. Uruchomiłem aplikację na serwerze pumy, a także zaktualizowałem puma gem do najnowszej wersji stabilnej.Super powolna wydajność po aktualizacji 4.2 kolejki
Problem jest, po aktualizacji, większość moich czasów żądanie poszedł od 1-2 sekund do 30 +, w wyniku Heroku limit czasu
plik połączenia Puma
# Force heroku to bigger conenction pool
Rails.application.config.after_initialize do
ActiveRecord::Base.connection_pool.disconnect!
ActiveSupport.on_load(:active_record) do
config = ActiveRecord::Base.configurations[Rails.env] || Rails.application.config.database_configuration[Rails.env]
config['reaping_frequency'] = ENV['PUMA_DB_REAP_FREQ'] || 10 # Seconds
config['pool'] = ENV['PUMA_DB_POOL'] || 20 # Puma can run up to 16 threads, perfect will be 80 (5x16), but heroku max is 20 for dev and basic
ActiveRecord::Base.establish_connection(config)
end
end
Gemfile (tylko istotne klejnoty)
source 'https://rubygems.org'
ruby '2.0.0'
gem 'puma', '2.10.2'
gem 'rails', '~> 4.2.0'
gem 'pg', '~> 0.18.0'
gem 'heroku'
gem 'responders', '~> 2.0'
Każdy pomysł na to, dlaczego doszło do tak wielkiej zmiany czasu oczekiwania?
Czy czytasz dzienniki aplikacji, serwera i db? – rafaels88
Tak, używam New Relic. Dokładne te same zapytania i metody po aktualizacji wymagają dużo więcej czasu, aby je uruchomić. Z jakiegoś powodu – Tarlen
Widzę coś bardzo podobnego. Mając nadzieję usłyszeć rozwiązanie. Jeśli znajdę rozwiązanie, opublikuję tutaj. – Aaron