【问题标题】:Why would scaling up increase latency?为什么扩大规模会增加延迟?
【发布时间】:2012-03-30 00:42:54
【问题描述】:

我们正在增加 GAE Java 应用的用户数量。我们现在的活跃用户是几天前的三倍左右。

我们注意到,GAE 仪表板报告的平均延迟几乎增加了 2 倍。没有代码更改。

增加用户数量会导致每个请求的延迟时间增加吗?大概在一个设计良好的应用程序中,appengine 会扩展实例的数量,以便将我们的延迟保持在最低限度。我没有更改任何默认的挂起延迟设置和类似设置。

在实现 appengine 应用程序时最常见的设计缺陷是哪些会导致延迟随着使用量的增加而增加?

数据存储争用?我们存储的数据在每个用户单独的实体组中,所以这似乎是一个低概率......

【问题讨论】:

  • 与其让我们猜测,不如告诉我们您的应用程序是如何工作的?您是否使用过 AppStats 来查看时间都花在了哪些地方?
  • @NickJohnson 与问题完全无关,但是,欢迎回来 :)
  • 意识到我应该为这个问题添加更多信息。我将暂时关闭它并打开一个包含更多细节的新问题。

标签: java google-app-engine


【解决方案1】:

您需要提供有关您的应用的更多信息,例如写入数据存储区。如果许多客户端写入数据存储,如果您使用单个实体,则会造成交通堵塞。

您需要做的是测量每个零件需要多长时间并比较两次负载之间的结果。

【讨论】:

    【解决方案2】:

    将“线程安全”设置为“是”时似乎存在延迟问题。您是否可能遇到与此处相同的issuehttp://code.google.com/p/googleappengine/issues/detail?id=6323

    更新: 默认情况下,每个 Web 服务器一次只处理一个请求。如果您将应用程序标记为线程安全的,App Engine 可能会将多个请求并行分派到每个 Web 服务器。为此,只需向 appengine-web.xml 添加一个 true 元素,如使用并发请求中所述。

    【讨论】:

    • 该错误报告与 Python 相关——我使用的是 Java。它似乎也已修复。
    • 你试过在 web.xml 文件中设置 true 吗?也许这篇文章有用:stackoverflow.com/questions/7292376/…
    • @aloo:默认情况下,每个 Web 服务器一次只处理一个请求。如果您将应用程序标记为线程安全的,App Engine 可能会将多个请求并行分派到每个 Web 服务器。为此,只需将 true 元素添加到 appengine-web.xml,如使用并发请求中所述。
    猜你喜欢
    • 2023-01-22
    • 1970-01-01
    • 2018-03-08
    • 1970-01-01
    • 2010-12-12
    • 1970-01-01
    • 2021-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多