I have a Python-based application deployed on the App Engine.  The
application framework (Django App Engine Patch) is a little bit
heavyweight, so it takes some time to start up and load all the
necessary modules, but once it's loaded it's quite fast.  From my
logs, it looks like the application is having to start up fairly
frequently, which causes very inconsistent response times depending on
whether or not it's loading again.  To my knowledge, this can be due
to two reasons:

1. The request is being handled by a new processing node on which the
application hasn't been loaded yet
2. The application had been loaded on this node, but it has been so
long since the last request that it has been unloaded in the meantime

To try to resolve point 2, I created a cron job on an external server
that "pings" the home page of my app every 10 seconds or so, and this
has helped somewhat.  However, my logs show that the application still
has to start up on about half of these ping requests.

To improve my process for keeping my application warm, it would help
if I understood:

A. How are requests routed in appengine (round-robin, some stickiness,
etc.)?
B. How long can I typically expect my application to stay loaded in
memory?

This would help me figure out whether my approach is even viable (i.e.
won't work for round-robin over large cluster) and what to set my ping
interval at.

Does anyone have any documentation/insights into either of these
points and/or suggestions for alternate approaches to achieving more
consistent response times?
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to