2012-03-26 126 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

您需要提供有關您的應用的更多信息,例如寫入數據存儲。如果許多客戶端寫入數據存儲區,則如果使用單個實體,則會造成堵塞。

您需要做的是測量每個部件需要多長時間並比較兩個負載之間的結果。