Google AppEngine: как часто происходит «запуск во время выполнения» - PullRequest
6 голосов
/ 16 июля 2009

Я планирую разместить приложение JRuby on Rails в Google AppEngine / Java. Я нашел отличный пост в блоге Олы Бини о том, как это сделать, но в резюме он говорит:

В целом, JRuby on Rails работает очень хорошо на App Engine, кроме некоторые мелкие детали. Основные из них стоимость запуска и тестирование. Как это случается, вы не можете получить GAE / J, чтобы создать вещи. Вместо вам придется выпустить первый релиз принять удар этого. Теперь GAE / J делает возможность предварительной проверки байт-кодов и так далее, так что запуск немного тяжелее чем на других JDK. Время выполнения около 20 секунд времени до запуска, поэтому первый удар занимает некоторое время.

Я не до конца понимаю это. Как часто и при каких обстоятельствах необходимо запускать среду выполнения? Вероятно, возникнет проблема с задержкой в ​​20 секунд.

1 Ответ

7 голосов
/ 16 июля 2009

App Engine будет запускать новые среды выполнения для вас всякий раз, когда спрос превышает текущие экземпляры. Затем он закроет случаи, когда спрос ниже. В конечном итоге это означает, что все ваших экземпляров могут быть закрыты, если ваше приложение не используется в течение определенного периода времени. Затем, в следующий раз, когда пользователь попытается получить доступ к вашему приложению, нужно будет запустить новый экземпляр или «раскрутить», как его называют некоторые люди.

По состоянию на март команда разработчиков приложений не давала никакой официальной оценки того, как долго экземпляр будет работать:


7:40pm] nwinter:  Is it possible to get a rough estimate of how long an app
instance will stick around once spawned?
[7:40pm] marzia_google: @nwinter, not really
[7:40pm] marzia_google: there are no garuntees
[7:41pm] nwinter:  No average time or anything?
[7:42pm] marzia_google: @nwinter i'm not sure an average time would be
meaningful, even if i knew off hand what it was ( i don't)
[7:42pm] marzia_google: since it really can be quite variable
[7:42pm] Kardax: Re instance lifetime: So an app instance could last a few
seconds or a few hours?  Just curious
[7:43pm] dan_google: nwinter: Apps are evicted by least-recently-used on an
app server.  As someone noted recently (forums or chat I forget), low
traffic could mean lots of "restarts", but so could spikes in traffic which
may start new instances on multiple app servers.
[7:43pm] nwinter:  @dan_google: good to know!
[7:43pm] dan_google: Kardax: Yes, depending on the weather.  By which I
mean, request patterns, other apps on each app server, and so forth.  Not
really predictable. 

Это стенограмма чата с командой разработчиков приложений. Я удалил несоответствующие строки в стенограмме, как "так и так вошли в систему". Полный текст стенограммы можно найти здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...