【问题标题】:Google App Engine Application Extremely slowGoogle App Engine 应用程序极慢
【发布时间】:2010-12-23 17:06:35
【问题描述】:

我在 Google App Engine 中创建了一个 Hello World 网站。它使用的是 Django 1.1,没有任何补丁。

虽然只是一个非常简单的网页,但它需要很长时间,而且经常会超时。

有解决这个问题的建议吗?

注意:第一次通话后响应很快。

【问题讨论】:

标签: python django google-app-engine


【解决方案1】:

现在 Google 添加了“始终在线”付款选项,每天 0.30 美元。

使用此功能,您的应用程序将不再需要冷启动。

始终开启

虽然热身请求可以帮助您 应用程序扩展顺利,他们做到了 如果您的应用程序非常 低流量。为了 低优先级的应用程序 流量,您可以通过以下方式保留实例 App Engine 的 Always On 功能。

始终开启是一项高级功能, 保留您的三个实例 应用程序,永远不要关闭它们, 即使应用程序没有 交通。这样可以减轻影响 在应用程序上加载请求 有少量或可变数量的 交通。此外,如果始终开启 实例意外死亡,App Engine 自动重启实例 带有热身请求。因此, Always On 应用程序应该确保 做尽可能多的初始化 可能在预热请求期间。

即使在启用 Always On 之后,您的 应用程序可能会遇到加载 请求是否突然增加 交通拥堵。

要启用 Always On,请转到账单 应用程序中的设置页面 Admin Console,然后单击 Always On 复选框。

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

【讨论】:

    【解决方案2】:

    这是一个可怕的建议,但无论如何我都会这样做:

    构建一个小的客户端应用程序,或者只是使用wgetcron 来定期访问您的应用程序,可能每5 分钟左右一次。这应该可以防止 Google 将其置于休眠状态。

    我说这是一个可怕的建议,因为它是对资源的浪费和对 Google 免费服务的滥用。我希望您仅在短暂的测试/启动阶段执行此操作。

    【讨论】:

    • 我发现来自不同 IP 的请求不一定会相互加热。这取决于您访问 G 的网络农场的哪个部分...尽管会话对于给定的 IP 似乎是粘性的跨度>
    【解决方案3】:

    总结this thread到目前为止:

    • 冷启动需要很长时间
    • Google 不鼓励 ping 应用程序以使其保持温暖,但人们不知道替代方案
    • an issue filed 支付暖实例(Java 的)
    • Python 有an issue filed。除其他外,.py 文件未预编译。
    • 某些应用受到严重影响(找不到 Google 网上论坛参考或问题)
    • March 2009 thread about Python

    在这个问题上我很少看到关于 Python 的讨论。

    【讨论】:

    • 当涉及到 Django 时,这是对 python 的常见抱怨。导入的大量内容不适用于频繁卸载实例的系统。
    【解决方案4】:

    如果它在第一次请求后快速响应,则可能只是启动并运行相关进程的情况。诚然,它需要这么长时间才能超时,这有点令人惊讶。这是在您更新应用程序并验证 AppEngine 仪表板显示它已准备好之后吗?

    “First hit slowness”在许多 Web 框架中很常见。在开发过程中有点痛苦,但在生产过程中不是问题。

    【讨论】:

    • 我可以确认这也发生在我身上。如果您的应用程序未被访问,AppEngine 似乎会让您的应用程序进入睡眠状态,并经过一个费力的过程来首先将其唤醒。我在其他功能正常的应用程序上遇到了超时。一旦 Dondon 拥有他的第一个百万用户,这将不再是问题 :)
    【解决方案5】:

    另一个提示可能会增加响应时间。

    启用计费确实会增加配额,并且根据我的个人经验,还会增加应用程序的整体响应。可能是因为谷歌拥有的支持计费的应用程序具有更高的优先级。例如,禁用计费的应用程序可以发送多达 5-10 封电子邮件/请求,启用计费的应用程序可以轻松处理 200 封电子邮件/请求。

    请务必设置较低的计费水平 - 您永远不知道 Slashdot、Digg 或 HackerNews 何时会注意到您的网站 :)

    【讨论】:

      【解决方案6】:

      我在基于 pylons 的应用程序中遇到了同样的情况。在用户输入凭据之前,我将初始页面服务器设置为静态,并在其中进行了虚拟 ajax 调用以启动应用程序。避免冗长的回复通常就足够了...只是在您真正拥有一百万用户之前可能会使用的一个想法;)。

      【讨论】:

        【解决方案7】:

        我使用 pingdom 的原因很明显 - 没有冷启动是一个奖励。当然,客户很快就会蜂拥而至,这不是问题

        【讨论】:

          【解决方案8】:

          您可能想试试CloudUp。它会定期 ping 您的谷歌应用程序以保持它们处于活动状态。它是免费的,您可以根据需要添加任意数量的应用程序。它还支持 azure 和 heroku。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2010-09-07
            • 2013-02-05
            • 2011-03-08
            • 1970-01-01
            • 2011-01-07
            • 2012-08-10
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多