Приложение Google App Engine очень медленное

Я создал сайт Hello World в Google App Engine. Он использует Django 1.1 без какого-либо патча.

Несмотря на то, что это просто очень простая веб-страница, на это уходит много времени, а часто и время ожидания.

Любые предложения, чтобы решить эту проблему?

Примечание: он реагирует быстро после первого звонка.

8 ответов

Решение

Это ужасное предложение, но я все равно сделаю это:

Создайте небольшое клиентское приложение или просто используйте wget с cron периодически получать доступ к вашему приложению, возможно, каждые 5 минут или около того. Это должно помешать Google перевести его в состояние покоя.

Я говорю, что это ужасное предложение, потому что это пустая трата ресурсов и злоупотребление бесплатным сервисом Google. Я ожидаю, что вы сделаете это только во время короткого этапа тестирования / запуска.

Теперь Google добавил способ оплаты "Всегда включен", который составляет 0,30$ в день.

Используя эту функцию, вашему приложению больше не придется начинать холодный запуск.

Всегда включен

Хотя запросы на разогрев помогают гладко масштабировать ваше приложение, они не помогают, если в вашем приложении очень мало трафика. Для приложений с высоким приоритетом и низким трафиком вы можете зарезервировать экземпляры с помощью функции всегда включенного в App Engine.

Always On - это расширенная функция, которая резервирует три экземпляра вашего приложения, никогда не отключая их, даже если в приложении нет трафика. Это смягчает влияние запросов на загрузку на приложения с небольшим или переменным объемом трафика. Кроме того, если экземпляр Always On случайно умирает, App Engine автоматически перезапускает экземпляр с запросом на разогрев. В результате приложения Always On должны обязательно выполнять как можно больше инициализации во время запросов на прогрев.

Даже после включения Always On ваше приложение может столкнуться с запросами на загрузку в случае внезапного увеличения трафика.

Чтобы включить Always On, перейдите на страницу "Настройки биллинга" в консоли администратора вашего приложения и установите флажок Always On.

http://code.google.com/intl/de-DE/appengine/docs/adminconsole/instances.html

Подведем итог этой теме:

  • Холодный старт занимает много времени
  • Google не рекомендует пинговать приложения, чтобы держать их в тепле, но люди не знают альтернативы
  • Есть проблема, поданная, чтобы заплатить за теплый экземпляр (Java)
  • Существует проблема, поданная для Python. Помимо всего прочего, файлы.py предварительно не скомпилированы.
  • Некоторые приложения несоразмерно затронуты (не могу найти ссылку или проблему в группах Google)
  • Мартовская ветка 2009 года про Python говорит <1s (!)

Я вижу меньше разговоров о Python по этому вопросу.

Еще один совет, который может увеличить время отклика.

Включение биллинга действительно увеличивает квоты и, по моему личному опыту, также увеличивает общий отклик приложения. Вероятно, из-за более высокого приоритета для приложений с поддержкой биллинга Google имеет. Например, приложение с отключенным биллингом может отправлять до 5-10 электронных писем / запрос, приложение с включенным биллингом легко справляется с 200 электронными письмами / запросом.

Просто убедитесь, что установлены низкие уровни выставления счетов - вы никогда не узнаете, когда Slashdot, Digg или HackerNews заметят ваш сайт:)

Если он отвечает быстро после первого запроса, возможно, это всего лишь случай запуска и запуска соответствующего процесса. По общему признанию это немного удивительно, что это занимает так много времени, что это истекает. Это происходит после того, как вы обновили приложение и убедились, что панель мониторинга AppEngine показывает, что оно готово?

"Медленный первый удар" довольно распространен во многих веб-фреймворках. Это немного больно во время разработки, но не проблема для производства.

Я использовал pingdom по понятным причинам - никакой холодный старт не является бонусом. Конечно, клиенты скоро приедут, и это будет не проблема

Я сталкиваюсь с тем же самым с приложением на основе пилонов. Я имею исходный сервер страниц как статический, и у меня есть фиктивный вызов ajax, чтобы запустить приложение, прежде чем пользователь введет учетные данные. Обычно этого достаточно, чтобы избежать длинного ответа... Просто идея, которую вы могли бы использовать, прежде чем у вас действительно будет миллион пользователей;).

Вы можете попробовать CloudUp. Он периодически проверяет ваши приложения Google, чтобы они оставались активными. Это бесплатно, и вы можете добавить столько приложений, сколько захотите. Также поддерживает лазурь и героку.

Другие вопросы по тегам