Я создал два очень простых приложения Heroku для тестирования службы, но при первом посещении страницы часто требуется несколько секунд, чтобы загрузить страницу:
- Cropify - Базовое приложение Sinatra ( на github )
- Textile2HTML - Еще более простое приложение Sinatra ( на github )
Все, что я сделал, это создал простое приложение Sinatra и развернуло его. Я не делал ничего, чтобы возиться с серверами Heroku или тестировать их. Что я могу сделать, чтобы уменьшить время отклика? Сейчас это очень медленно, и я не знаю, с чего начать. Код проектов находится на github, если это поможет.
ruby
performance
heroku
Лэнс Поллард
источник
источник
Вы также можете изучить варианты кеширования, которые у вас есть на Heroku w / Varnish и Memcached. Они сохраняются независимо от динамометрических стендов.
Например, если у вас неизменная домашняя страница, вы можете кэшировать ее на длительное время в Varnish, добавив заголовки Cache-Control в ответ. Тогда ваши пользователи не столкнутся с нагрузкой, пока они не захотят «что-то сделать», а не когда они придут.
источник
Вы должны проверить ответ Тома Робинсона на тему «Масштабируемость: как работает Heroku?» на Quora: http://www.quora.com/Scalability/How-does-Heroku-work
Heroku распределяет ресурсы сервера между множеством разных клиентов / приложений. Вашему приложению выделены блоки вычислительной мощности. Разделы Heroku на основе потребности в ресурсах. Когда у вас есть популярное приложение, требующее большей мощности, вы можете заплатить за большее количество «дино» (контейнеров приложений), а затем получить взамен больший кусок пирога.
В вашем случае, однако, вы запускаете бесплатное приложение, которое мало кто - если кто-то не из вас - посещает / использует. Таким образом, Heroku сокращает ресурсы, которые вы получаете, выгружая приложение - по сути, переводя его в спящий режим - до тех пор, пока на ваш адрес не поступит запрос. Когда это происходит, и ваше приложение долгое время простаивает, потребуется время для перезагрузки.
Добавьте 1 дополнительный дино, чтобы ваше приложение не засыпало, если время перезагрузки важно.
источник
У меня та же проблема. Вчера вечером я развернул приложение Rails 3 (1.9.2), и оно работает медленно. Я знаю, что 1.9.2 / Rails 3 находится в бета-версии на Heroku, но в заявке поддержки говорилось, что все будет в порядке, используя некоторые инструкции, которые они мне прислали.
Я понимаю, что первый запрос после долгого времени занимает больше всего времени. Имеет смысл. Но простая загрузка страниц, которые даже не подключаются к БД, занимающая 10 секунд, иногда довольно плохо.
В любом случае, вы можете попробовать то, что я собираюсь делать. Это профилируйте мое приложение и посмотрите, сколько времени это займет локально. Если это занимает 400 мс, значит, что-то не так. Но если я получаю 50 мс локально, а на Heroku все равно требуется 10 секунд, то что-то определенно не так.
Очевидно, что кеширование помогает, но вы получаете только 5 МБ бесплатно, и, опять же, с ОДНИМ человеком, использующим сайт, это не должно быть так медленно.
источник