Google App Engine Application Extremely slow
Asked Answered
D

8

18

I created a Hello World website in Google App Engine. It is using Django 1.1 without any patch.

Even though it is just a very simple web page, it takes long time and often it times out.

Any suggestions to solve this?

Note: It is responding fast after the first call.

Drugge answered 6/12, 2009 at 8:58 Comment(1)
this was discussed in a recent post on the appengine group: groups.google.com/group/google-appengine/browse_thread/thread/… The problem with pinging is also discussed - it will probably lead to shorter and shorter app timeouts as google and the pingers escalate.Cardinale
R
14

This is a horrible suggestion but I'll make it anyway:

Build a little client application or just use wget with cron to periodically access your app, maybe once every 5 minutes or so. That should keep Google from putting it into a dormant state.

I say this is a horrible suggestion because it's a waste of resources and an abuse of Google's free service. I'd expect you to do this only during a short testing/startup phase.

Regulation answered 6/12, 2009 at 9:29 Comment(1)
Ive found that requests coming from different IPs arent necessarily warmed by each other.. it depends which part of G's web farm you hit... the session appears to be sticky for a given IP thoughHephzipah
F
20

Now Google has added a payment option "Always On" which is 0.30$ a day.

Using this feature, your application will not have to cold start any more.

Always On

While warmup requests help your application scale smoothly, they do not help if your application has very low amounts of traffic. For high-priority applications with low traffic, you can reserve instances via App Engine's Always On feature.

Always On is a premium feature which reserves three instances of your application, never turning them off, even if the application has no traffic. This mitigates the impact of loading requests on applications that have small or variable amounts of traffic. Additionally, if an Always On instance dies accidentally, App Engine automatically restarts the instance with a warmup request. As a result, Always On applications should be sure to do as much initialization as possible during warmup requests.

Even after enabling Always On, your application may experience loading requests if there is a sudden increase in traffic.

To enable Always On, go to the Billing Settings page in your application's Admin Console, and click the Always On checkbox.

http://code.google.com/intl/de-DE/appengine/docs/adminconsole/instances.html

Faze answered 16/2, 2011 at 14:29 Comment(0)
R
14

This is a horrible suggestion but I'll make it anyway:

Build a little client application or just use wget with cron to periodically access your app, maybe once every 5 minutes or so. That should keep Google from putting it into a dormant state.

I say this is a horrible suggestion because it's a waste of resources and an abuse of Google's free service. I'd expect you to do this only during a short testing/startup phase.

Regulation answered 6/12, 2009 at 9:29 Comment(1)
Ive found that requests coming from different IPs arent necessarily warmed by each other.. it depends which part of G's web farm you hit... the session appears to be sticky for a given IP thoughHephzipah
D
7

To summarize this thread so far:

  • Cold starts take a long time
  • Google discourages pinging apps to keep them warm, but people do not know the alternative
  • There is an issue filed to pay for a warm instance (of the Java)
  • There is an issue filed for Python. Among other things, .py files are not precompiled.
  • Some apps are disproportionately affected (can't find Google Groups ref or issue)
  • March 2009 thread about Python says <1s (!)

I see less talk about Python on this issue.

Dentiform answered 6/12, 2009 at 8:58 Comment(1)
It's a common complaint with python when Django is involved. The huge amount of stuff that's imported doesn't work well with a system where instances are unloaded so frequently.Whiteeye
S
4

If it's responding quickly after the first request, it's probably just a case of getting the relevant process up and running. Admittedly it's slightly surprising that it takes so long that it times out. Is this after you've updated the application and verified that the AppEngine dashboard shows it as being ready?

"First hit slowness" is quite common in many web frameworks. It's a bit of a pain during development, but not a problem for production.

Shumaker answered 6/12, 2009 at 9:5 Comment(1)
I can confirm that this happened to me too. It seems that AppEngine puts your application to sleep if it's not accessed, and goes about a laborious process to first wake it up. I have experienced timeouts on an otherwise functional app. Once Dondon has his first million users, this won't be a problem any more :)Regulation
A
4

One more tip which might increase the response time.

Enabling billing does increase the quotas, and, to my personal experience, increase the overall response of an application as well. Probably because of the higher priority for billing-enabled applications google has. For instance, an app with billing disabled, can send up to 5-10 emails/request, an app with billing enabled easily copes with 200 emails/request.

Just be sure to set low billing levels - you never know when Slashdot, Digg or HackerNews notices your site :)

Airliah answered 6/12, 2009 at 22:39 Comment(0)
B
3

I encounteres the same with pylons based app. I have the initial page server as static, and have a dummy ajax call in it to bring the app up, before the user types in credentials. It is usually enough to avoid a lengthy response... Just an idea that you might use before you actually have a million users ;).

Belgian answered 6/12, 2009 at 20:2 Comment(0)
P
3

I used pingdom for obvious reasons - no cold starts is a bonus. Of course the customers will soon come flocking and it will be a non-issue

Protestant answered 25/5, 2010 at 21:45 Comment(0)
G
1

You may want to try CloudUp. It pings your google apps periodically to keep them active. It's free and you can add as many apps as you want. It also supports azure and heroku.

Gerstein answered 24/5, 2014 at 2:43 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.