2015-02-22 2 views
2

Я использую оплаченный 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 с.

Я не думаю, что это связано с провайдером, потому что я действительно путешествовал и видел одинаковые проблемы с производительностью из США и Европы.

+0

Начните работу с журналами приложений, а не с db. Они расскажут вам о пробое между db-запросами, рендерингом и т. Д. –

+0

Добавлена ​​дополнительная информация - я действительно в тупике. Любые советы приветствуются! Возможно, я читал неправильно, но серверные журналы, похоже, не идентифицируют медленность ответа - я вижу проблему только на стороне клиента. Но это происходит со мной во всех устройствах и на разных физических континентах! –

ответ

1

Добавить NewRelic add-on в экосистему вашего приложения на Heroku и исследовать, что происходит. Вы можете сделать это на приборной панели Heroku. Выберите бесплатный план, и вам будет предоставлен 2-недельный пробный период с полной функциональностью. После пробного периода будут некоторые ограничения, но в любом случае этого достаточно для измерения производительности небольшого приложения. Также вы можете добавить Logentries add-on, и вы получите доступ к истории журнала приложения через веб-интерфейс.

+0

Спасибо, но что я ищу? Например, db отправляет это каждые 15 секунд в журналы - включается как редактирование. –

+0

Просто добавьте NewRelic, и вы увидите изображение отверстия на графиках, как ваше приложение реагирует на запросы на стороне сервера. Возможно, в вашем случае проблема связана с вашим интернет-провайдером или вашим Wi-Fi-маршрутизатором или чем-то еще, не связанным с вашим приложением. – atomdev

+0

Ну, это безумие. Я только что закончил установку New Relic, и приложение быстро кричит ... но я ничего не делал!Это почти похоже на последнюю сборку, которую я как-то нажал, и эта новая фиксация с добавлением драгоценного камня NR отформатировала ее. Думаю, я проведу несколько дней и закрою этот вопрос, если проблема будет решена ... –