Due to lack of information about when App Engine starts new instances,
how it affect performance and side effects of scaling up I have here
made a short summary from my own experiences so others won't have to
find it out the hard way.

I still don't have any long experience with App Engine, but I see it
as a very promision product. The problems I see with it are mostly
associated with how the scaling of instances works. Mainly because NO
information exists on how it works. Not even the support (by mail)
seem to know how it works.

I've tried to split this post into three parts for readability. Sorry
for the wall of text.

__________________

First some basic facts on the non-billing (free) and billing enabled
versions.

The free version can start at most 30 instances, and the billing
enabled one have no hard limit. However, it got a soft limit which
starts at 30 and is incremented by 10 when needed. When the
application reaches its soft cap of instances and stays there for
about 10-15 minutes, and it still lacks performance, then the soft cap
is incremented by 10. If it still needs more it will be incremented by
10 after a few minutes, and so on.

This all looks fine (although it isn't mentioned anywhere, which lead
me to bad decisions). What is worse is some sort of "minimum number of
instances", which I will refer to as min instances, which App Engine
will try to start up before activly forwarding the requests to hot
instances.

After a lot of testing, my results say that min instances starts on 1,
and is incremented by 1 for every soft cap increment. That is, this
value will be about a tenth of the soft cap.

__________________

What is the effect of this min instances more exactly?

If it is set to 4 then if there is/are: 0 instance started: An
instance starts, user feel a cold start 1 instance started: 25% of
user getting an hot instance, 75% of instance startup. 2 instances
started: 50/50% of getting an hot or cold instance. 3 instances
started: 75% of getting an hot... 4+ instances started: Now it behaves
as everyone believes.

Apart from being strange and not documented, there are some mayor
issues with this:

* It is not reverted! Even if the application is idle for a week, the
min instances are not lowered.

* Warmup requests is not triggered for the first <min instances>
instance startups.

* Always on starts only exactly 3 instance, if you sometime earlier
have boosted your min instance past 3 then users will still notice
cold starts, even if your application have been idle for the past
hours!

__________________

My story:

I didn't know about the soft cap, and hit the roof pretty quickly with
my stress tests. I aborted the tests then and asked support why it
didn't start more instances. They just said I should have the test run
longer. And so I did. I increased the soft cap to 100 instances or
something and felt that the service would handle anything that was
thrown at it.

Now when my application have gone live the first users will more or
less all be handeled by cold starts. It is always hard to predict the
number of users, but in the worst case the first users will get scared
away because of the performance issues and also warn other users about
it.

If by any means a Google employee knows about this issue, and knows
how to revert the min instances (without interrupting the service)
then please notify me!

-- 
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-appeng...@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