Я использую оплаченный Heroku ($ 35/mo 2x web dyno, $ 50/mo silver postgresdb) план для небольшого внутреннего приложения с типично 1-2 одновременными пользователями. Размер снимка базы данных меньше 1 МБ.Необъяснимое высокое время отклика на окружающую среду Heroku
Приложение Rails 4.1. В течение последних двух недель, было существенное падение производительности в производстве окр, где Chrome Dev инструменты отчеты время отклика, как 8s
типична:
Всего 8.13s
зависших 3,643 мс
DNS Lookup 2.637 мс
начальное соединение 235.532 мс
SSL 133.738 мс
Запрос отправлен 0,546 мс
Ожидание (TTFB) 3,43 с
Содержимое Загрузка 4.47 s
Я использую среду Nitrous dev и получаю ответ суб-1 на сервере-разработчике с незакомпилированными активами (с зеркальным db).
Я новичок программист и не знаю, как отладить это. Почему я вижу 800% более медленную производительность по сравнению с средой dev на $ 85/mo + план Heroku? Учитывая мой текущий уровень навыков программирования, мое приложение, вероятно, плохо оптимизировано (несколько N + 1 запросов там ...), но насколько это плохо, когда в производстве есть 1-2 одновременных пользователя?
Пример из бревен, если это поможет: sample#current_transaction=16478 sample#db_size=18974904bytes sample#tables=28 sample#active-connections=6 sam ple#waiting-connections=0 sample#index-cache-hit-rate=0.99929 sample#table-cache-hit-rate=0.99917 sample#load-avg-1m=0.365 sample#load-avg-5m=0.45 sample#load-avg-15m=0.445 sample#read-iops= 37.587 sample#write-iops=36.7 sample#memory-total=15405616kB sample#memory-free=1409236kB sample#memory-cached=12980840kB sample#memory-postgres=497784kB
Пример из журналов сервера: Completed 200 OK in 78ms (Views: 40.9ms | ActiveRecord: 26.6ms
Я вижу подобные номера на Dev сервере, но фактическое визуальное представление день и ночь. Dev отвечает так, как вы ожидали, - ответ и рендер суб-1. Производственный сервер занимает 4-5 с.
Я не думаю, что это связано с провайдером, потому что я действительно путешествовал и видел одинаковые проблемы с производительностью из США и Европы.
Начните работу с журналами приложений, а не с db. Они расскажут вам о пробое между db-запросами, рендерингом и т. Д. –
Добавлена дополнительная информация - я действительно в тупике. Любые советы приветствуются! Возможно, я читал неправильно, но серверные журналы, похоже, не идентифицируют медленность ответа - я вижу проблему только на стороне клиента. Но это происходит со мной во всех устройствах и на разных физических континентах! –