2009-07-16 11 views
6

Ich plane eine JRuby on Rails App auf Google AppEngine/Java zu hosten. Ich fand a great blog post by Ola Bini, wie man dies zu, aber in der Zusammenfassung heißt es:Google AppEngine: Wie oft tritt ein "Runtime Startup" auf

Insgesamt JRuby on Rails funktioniert sehr gut auf der App Engine, mit Ausnahme von einige kleinere Details. Die wichtigsten sind die Startkosten und testen. Als es passiert, können Sie nicht wirklich GAE/J Precreate Dinge zu bekommen. Stattdessen müssen Sie lassen Sie die erste Veröffentlichung nehmen Sie den Treffer davon. Nun, GAE/J tut eine Vorverifizierung von Bytecodes und so weiter, so dass Start ist ein bisschen schwerer als auf anderen JDKs. Eine Laufzeit dauert etwa 20 Sekunden Wandzeit zum Start, , so dass der erste Treffer einige Zeit braucht.

Ich verstehe das nicht vollständig. Wie oft, unter welchen Umständen muss eine Laufzeit gestartet werden? Eine regelmäßige Verzögerung von 20 Sekunden ist wahrscheinlich ein Problem.

Antwort

7

App Engine startet neue Laufzeiten für Sie, wenn die aktuellen Instanzen überschritten werden. Es wird dann Instanzen herunterfahren, wenn die Nachfrage niedriger ist. Letztendlich bedeutet dies, dass alle Ihrer Instanzen heruntergefahren werden können, wenn Ihre App für eine bestimmte Zeit nicht verwendet wird. Wenn ein Benutzer das nächste Mal versucht, auf Ihre App zuzugreifen, muss eine neue Instanz gestartet oder "hochgefahren" werden, wie manche Leute sie nennen.

Ab März das Team App Engine nicht geben würde keine offizielle Schätzung, wie lange eine Instanz wird aufbleiben:

 

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. 

Dies ist die Abschrift eines Chat mit dem App Engine-Team. Ich habe die nicht relevanten Zeilen in der Abschrift wie "so und so eingeloggt" gelöscht. Das vollständige Transkript finden Sie here

+0

Vielen Dank, viel klarer jetzt. –

Verwandte Themen