2012-03-26 93 views
3

我们正在扩大GAE java应用程序的用户数量。我们现在几乎有三倍于我们前几天的活跃用户。为什么会放大增加延迟?

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

什么会导致每个请求的延迟增加,只是有更多的用户?据推测,在一个设计良好的应用程序中,appengine可以扩展实例的数量,以便将延迟保持在最低水平。我没有更改任何默认的待处理延迟设置和类似的。

实施appengine应用程序时最常见的设计缺陷是什么,会导致延迟随着使用量的增加而上升?

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

+0

为什么不告诉我们关于你的应用程序的工作方式?您是否使用AppStats查看时间花在哪里? – 2012-03-26 12:21:24

+0

@NickJohnson完全不相关的问题,但欢迎回来:) – 2012-03-26 12:34:25

+0

@ShayErlichmen谢谢! – 2012-03-26 12:35:14

回答

0

当将“threadsafe”设置为“yes”时,似乎存在延迟问题。你也许击中同一issue为在这里找到:http://code.google.com/p/googleappengine/issues/detail?id=6323

更新: 默认情况下,每个Web服务器进程在同一时间只有一个请求。如果您将应用程序标记为线程安全,则App Engine可以并行地向每个Web服务器分派多个请求。为此,只需在Appengine-web.xml中添加一个true元素,如使用并发请求中所述。

+0

该错误报告与Python有关 - 我正在使用Java。它也似乎是固定的。 – aloo 2012-03-26 07:06:02

+0

您是否尝试过在web.xml文件中设置 true?也许这篇文章很有用:http://stackoverflow.com/questions/7292376/creating-multiples-instances-in-google-app-engine-java – TommyN 2012-03-26 12:21:30

+0

@aloo:默认情况下,每个Web服务器一次只处理一个请求。如果您将应用程序标记为线程安全,则App Engine可以并行地向每个Web服务器分派多个请求。为此,只需将 true元素添加到appengine-web.xml中,如使用并发请求中所述。 – TommyN 2012-03-29 16:42:24

1

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

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