2012-06-15 41 views
0

我看到AppEngine有一個奇怪的減速問題:即使blob很小(只有幾百字節),在我的應用程序中請求blob上傳需要2.5-3.5秒。我的應用程序中的所有其他請求都在100-300毫秒內處理,如果我查看日誌,blob上傳的回調請求也不例外。因此,blob上傳服務器似乎需要2-3秒才能接受上傳,存儲它,並開始回撥我的應用程序。看起來非常漫長,不是?極其緩慢的AppEngine Blob上傳

只是爲了搶佔:我知道blobstore中的100字節條目是一個愚蠢的想法,應該存儲在常規數據存儲中以減少開銷,但隨着時間的推移blob中的數據將增長,然後我將不得不讓他們在Blob存儲反正...

感謝,

馬庫斯

PS:如果它的事項:我使用了Java API ...

回答

0

是您的應用程序主從或HRD?

上傳blob時會發生很多步驟 - 包括某些數據存儲區寫入。您應該期待它發送到您的應用程序的正常http獲取時間更長。

+0

目前它是主從。這可能會有所作爲嗎?在我的理解中,主奴應該更快,對嗎? 有意義的是,在blob上傳過程中發生了很多事情,但2-3秒的延遲看起來非常過分,不是嗎?也許這個過程並沒有像其他事情那樣優化,因爲它主要用於上傳大文件,而這些文件需要一段時間,而更多的時間需要2-3秒才能完成。 –

+0

說實話,2到3秒對我來說似乎並不過分 - 如果你只有小小的上傳,你總是可以編寫一個處理程序來接受帖子,如果你認爲它會使用文件api寫出到blobstore更適合您的應用程序。 –

+0

這不是一個壞主意。如果速度更快,我應該嘗試。從技術上講,我沒有看到爲什麼它會產生性能差異的原因,因爲我認爲這正是blob上傳處理程序所做的,但它可能無論如何。不過,我感到很驚訝,你認爲2-3s的轉身並不過分,考慮到AppEngine(就我從文檔和Google I/O會談中瞭解的)而言,是專門爲服務請求提供服務的。可能的,最好〜100毫秒。通常延遲被引用爲#1用戶體驗相關的基準,2-3s無緣無故。 –