我在Google App Engine上创建了一个Hello World网站。它使用的是Django 1.1版本,没有任何补丁。
尽管这只是一个非常简单的网页,但它需要很长时间才能加载完成,并且经常超时。
有什么建议可以解决这个问题吗?
注意:第一次访问后,它会很快响应。
我在Google App Engine上创建了一个Hello World网站。它使用的是Django 1.1版本,没有任何补丁。
尽管这只是一个非常简单的网页,但它需要很长时间才能加载完成,并且经常超时。
有什么建议可以解决这个问题吗?
注意:第一次访问后,它会很快响应。
现在谷歌已经添加了一个名为“Always On”的支付选项,每天 0.30$。
使用此功能,您的应用程序将不再需要冷启动。
Always On
尽管热身请求可以帮助应用程序平稳扩展,但如果您的应用程序流量非常低,则无法帮助。对于流量较低的高优先级应用程序,您可以通过App Engine的Always On功能预留实例。
Always On是一项高级功能,它会预留三个实例,即使应用程序没有流量也不会关闭,以缓解负载请求对具有小型或可变流量的应用程序的影响。此外,如果Always On实例意外关闭,App Engine会自动使用热身请求重新启动实例。因此,Always On 应用程序应该在热身请求期间尽可能多地进行初始化。
即使启用了Always On,如果流量突然增加,您的应用程序仍可能遇到加载请求。
要启用 Always On,请转到应用程序管理控制台中的计费设置页面,并单击Always On复选框。
http://code.google.com/intl/de-DE/appengine/docs/adminconsole/instances.html
这个建议很糟糕,但我还是提出了:
构建一个小型客户端应用程序或只是使用 wget
和 cron
定期访问您的应用程序,大约每 5 分钟一次。这样就可以防止 Google 将其置于休眠状态。
我说这是一个可怕的建议,因为这是浪费资源和滥用 Google 的免费服务。我希望您只在短暂的测试/启动阶段做此操作。
我看到对于Python的讨论较少。
还有一个可能会增加响应时间的提示。
启用计费确实会增加配额,并且根据我的个人经验,也会增加应用的总体响应速度。可能是因为启用计费的应用程序在谷歌中具有更高的优先级。例如,禁用计费的应用程序每次请求只能发送5-10封电子邮件,而启用计费的应用程序可以轻松处理200封电子邮件/请求。
只需要设置低的计费级别 - 毕竟你永远不知道Slashdot、Digg或HackerNews会何时注意到你的站点 :)
我遇到了使用基于pylons的应用程序时相同的问题。我将初始页面服务器设置为静态,并在其中放置一个虚拟的ajax调用以启动应用程序,然后用户输入凭据。通常这足以避免长时间的响应...这只是一个想法,您可能在实际拥有一百万用户之前使用它 ;)。
我选择使用Pingdom的原因很显然——无需冷启动是一个优点。当然,客户很快就会涌来,这将不再是一个问题。