Thanks for taking a look.  I agree, the site seems to be lasting
longer at the moment ... that's a good thing.  Startup time is worse
than usual (10+ seconds rather than 3 seconds), which isn't good.

I know you guys don't have many resources to actively improve GAE, and
I appreciate that you're doing what you can.  I look forward to
whatever solution you can come up with to improve the situation for
everyone: more hardware available, pre-compile Python, pay for warm
instance, somehow detect and disable pinging to free up resources for
all, whatever.


On Dec 14, 9:33 am, Toby Reyelts <to...@google.com> wrote:
> I took a few measurements of your app around 9AM PST today (Monday). Your
> VMs were timing out at between 90 seconds and two minutes. As you've
> noticed, the number of loading requests increases as the amount of traffic
> on App Engine increases. This is why we discourage active pinging.
>
> On Fri, Dec 11, 2009 at 9:16 PM, Devel63 <danstic...@gmail.com> wrote:
> > Toby,
>
> > Here's a site that gets almost no traffic (not yet publicized):
> >www.lifehints.com
>
> > Try it Monday morning at 9am PST and see how quickly it times out.
> > I've been seeing it apparently time out in a few seconds during the
> > workday.  I suppose it's possible that what I'm seeing is Google
> > firing up another instance, but that sounds unlikely given that
> > there's no one else on the site most of the time.
>
> > On a Friday evening (now), it's staying warm for quite some time.
>
> > On Dec 11, 8:57 am, Toby Reyelts <to...@google.com> wrote:
> > > On Thu, Dec 10, 2009 at 8:19 AM, bFlood <bflood...@gmail.com> wrote:
> > > > hi toby
>
> > > > you said: "VM timeouts are measured on the order of minutes, not
> > > > seconds" - I have not seen this in practice since over a year ago when
> > > > GAE will still young. currently, every site I've measured is collected
> > > > in seconds (10, maybe 20)
>
> > > Do you have the appids of specific sites that you believe are timing out
> > > every 10 seconds? This is not what we're seeing. Are you sure you aren't
> > > seeing loading requests to several different VMs in parallel?
>
> > > also: "to write a "Hello World" python app that responds from a cold
>
> > > > start on the order of 100m" - again, I have not seen this in practice
> > > > for quite some time. the simplest of python sites, with no imports and
> > > > very little code seem to start in the  500ms  to 1s range (and
> > > > sometimes, much longer). Please note Nick's post here, where he
> > > > changed his original cold-start metrics:http://bit.ly/6Fsoxv
>
> > > Nick's example is not "Hello World". He's cold-starting his blogging app
> > in
> > > less than 500ms. (I personally believe that is quite acceptably
> > responsive).
>
> > > What I'm driving at is that there's a minimum startup time which you can
> > not
> > > control as a developer, and that startup time is very low for python  (on
> > > the order of 100ms). Everything else is under your control: What
> > > dependencies you have, what web framework you use, whether you push
> > static
> > > content and use ajax requests, etc...
>
> > > > I'm now under the impression that slow VM startups is a GAE issue and
> > > > while user imports are critical to keep them reasonable once they are
> > > > started, there is a lot of overhead that is completely out of our
> > > > control. The only way I've found to keep low traffic sites bearable is
> > > > to use polling from the task queue, so IMO, the title of this post is
> > > > quite appropriate
>
> > > > cheers
> > > > brian
>
> > > > On Dec 9, 12:26 pm, Toby Reyelts <to...@google.com> wrote:
> > > > > Responses inline.
>
> > > > > On Sun, Dec 6, 2009 at 7:49 PM, Devel63 <danstic...@gmail.com>
> > wrote:
> > > > > > Toby, you write that it doesn't usually pay to optimize loading
> > > > > > requests.
>
> > > > > > I agree with this whole-heartedly when you have your own server,
> > and
> > > > > > only load once per day or month.  It's probably true using GAE when
> > > > > > you have 100K+ page views per day.
>
> > > > > I think there's a misunderstanding here. What I said was that it's
> > not
> > > > worth
> > > > > optimizing loading requests in regards to quota. Latency is a
> > separate
> > > > > concern.
>
> > > > > > But for lower-volume web sites, GAE performance is atrocious.  In
> > my
> > > > > > personal case, we have optimized in all sorts of ways (js
> > > > > > minification, liberal use of memcache, image sprites, sticking with
> > > > > > Django 0.96, etc.) ... but the typical user experience is quite
> > poor.
> > > > > > It takes 3-10 seconds for the first page to load, and then often
> > the
> > > > > > instance is swapped out while the user reads the current page, so
> > that
> > > > > > the next request experiences the same thing.   If the app is warm,
> > > > > > performance is fine.
>
> > > > > If your VM is timing out while a user is actively visiting the site,
> > then
> > > > > your site is extremely low traffic. VM timeouts are measured on the
> > order
> > > > of
> > > > > minutes, not seconds. So, for example, that means that you didn't
> > receive
> > > > > any traffic to your VM at all for several minutes between the time
> > the
> > > > user
> > > > > fetched the first and second pages.
>
> > > > > > Maybe this gets appreciably better as traffic improves, but of
> > course,
> > > > > > I can't see that at present.
>
> > > > > Yes, as stated above, VMs are not aggressively collected. In the
> > normal
> > > > > case, if you have an active user of your website, you shouldn't see a
> > > > > cold-start per request. Maybe in your particular case you can
> > > > asynchronously
> > > > > ping your backend (for example, with an AJAX request) a few seconds
> > > > before
> > > > > they continue onto the next page?
>
> > > > > I love GAE in theory, but it's getting
>
> > > > > > harder to ignore the reality of low-volume performance.
>
> > > > > As stated above, I think you're falling into a particularly bad
> > extreme
> > > > > (continuous cold requests for an "active" user). This might require
> > some
> > > > > creativity (for example, as above) to work around.
>
> > > > > In terms of speeding up the loading request itself, the good news
> > that
> > > > the
> > > > > bulk of of that time is directly under your control. As an existence
> > > > proof
> > > > > of this, you should be able to write a "Hello World" python app that
> > > > > responds from a cold start on the order of 100ms. This means you
> > might
> > > > try
> > > > > doing things like paring down the dependencies that you load on cold
> > > > > requests. You can also take advantage of the fact that requests for
> > > > static
> > > > > content bypass your VM and are never "cold". So, for example, you can
> > > > serve
> > > > > a page that is comprised mostly of static content almost instantly,
> > and
> > > > let
> > > > > it make AJAX requests to asynchronously fill in its dynamic content
> > as
> > > > your
> > > > > VM warms up.
>
> > > > > If you'd rather just pay to have us maintain a warm VM for you, you
> > can
> > > > vote
> > > > > on that issue.
>
> > > > > > On Dec 4, 3:38 pm, Toby Reyelts <to...@google.com> wrote:
> > > > > > > On Oct 23, 3:02 pm, bugaco <ice...@gmail.com> wrote:
>
> > > > > > > > I had a bit weird experience with this...
>
> > > > > > > > So I wrote app (http://analytics.bugaco.com) that runs on App
> > > > Engine.
> > > > > > > > Than I looked at the request logs to see how it is running.
> > > > > > > > Request logs suggested that I'm using a lot of CPU time on
> > hitting
> > > > the
> > > > > > > > home page, but after that CPU time significantly decreases. It
> > also
> > > > > > > > had annoying red flag suggesting that servlet is using
> > excessive
> > > > > > > > resources and that I need to optimize it.
> > > > > > > > Testing a bit, I noticed that pinging lets app be warm, and I
> > had
> > > > cron
> > > > > > > > doing the pings for a few days; while also noticing that it
> > does
> > > > not
> > > > > > > > do anything useful
>
> > > > > > > > Conclusion:
> > > > > > > > 1. If log files don't suggest that you are better off pinging
> > > > people
> > > > > > > > would not ping
>
> > > > > > > I'm not sure what you mean here, but we have plans to change the
> > > > admin
> > > > > > > console to explicitly call out loading requests, so you can take
> > that
> > > > > > > into account when profiling your application. Until that becomes
> > > > > > > available, it's pretty easy for you to detect and log loading
> > > > requests
> > > > > > > yourself.
>
> > > > > > > > 2. It is stupid that google counts warming up your app toward
> > CPU
> > > > time
> > > > > > > > (leading to profiling, that leads to pinging)
>
> > > > > > > A couple of things:
>
> > > > > > > 1) CPU time doesn't grow on trees, it comes out of your free or
> > paid
> > > > > > > quota. Why should we hide this from you?
>
> > > > > > > 2) The number of loading requests your application receives are
> > > > > > > inversely proportional to its traffic. If you get more traffic,
> > > > you'll
> > > > > > > receive fewer loading requests. This means it usually doesn't pay
> > to
> > > > > > > optimize loading requests, unless you're just trying to reduce
> > user
> > > > > > > latency.
>
> > > > > > > > 3. It is very stupid that applications can not denote 'keep
> > this
> > > > code
> > > > > > > > path warm/cache it/or something' that will allow new users not
> > to
> > > > give
> > > > > > > > up on the up until they get first response.
>
> > > > > > > Unfortunately, it takes an inordinate amount of physical hardware
> > to
> > > > > > > keep on the order of millions of applications in memory, which is
> > > > > > > somewhat counter to free. If our startup optimizations plus your
> > own
> > > > > > > optimizations don't satisfy you, then maybe you can voice your
> > > > opinion
> > > > > > > on paying for a warm VM (
> >http://code.google.com/p/googleappengine/
> > > > > > > issues/detail?id=2456)?
>
> > > > > > > > So, as a conclusion, I think AppEngine is AWESOME. And I also
> > think
> > > > it
> > > > > > > > SUCKS.
> > > > > > > > I love SDK, ability to deploy and test and use all the cool
> > things.
> > > > > > > > I don't like the idea that it can not serve a (entry)page in
> > 3-5
> > > > > > > > seconds as I think that it leaves bad taste in users mouth, and
> > > > > > > > consequently bad taste in developers mouth.
>
> > > > > > > > Finally, I am not sure I'll use AppEngine for developing other
> > > > > > > > applications as I'd rather go with paid hosting that provides
> > some
> > > > > > > > level of
>
> ...
>
> read more »

--

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