2

有沒有辦法減少GCS上傳的延遲?我能以某種方式強制更快的雲存儲以獲得更高的速度嗎?GCS uploadHanders極度延遲

如果我創建通過GAE的uploadHandler

blobstore.create_upload_url('/upload', gs_bucket_name='bucket_name') 

它創建一個這樣的網址:/_ah/upload/AMmfu6ay12yQDxuTOEjUh5...c-J09am7J4r

小哨到這個網址(120KB)結果在這條時間線:(8秒延遲!)

Blocking : 2.000 ms 
Sending : 241.000 ms 
Waiting : 8.22 S 
Receiving : 1.000 ms 

但張貼在同一文件GAE本身並使用雲端儲存SDK把這個blob寫到GCS我得到這個時間表:

Blocking : 2.000 ms 
Sending : 221.000 ms 
Waiting : 2.62 S 
Receiving : 1.000 ms 

爲什麼這個差別很大?我可以調整哪些參數來縮短延遲時間?如果能夠避免我的前端GAE實例的額外負載,在速度很重要的時候讓任何人有GCS經驗,那將是一件非常棒的事情。

+0

您的第一個示例在App Engine和雲存儲之間安裝了blobstore。非gcs blobstore上傳的延遲是什麼樣的? – David 2014-10-09 00:08:18

+0

不錯,2-3秒,如果我刪除gcs桶參數 – 2014-10-09 21:36:08

回答

0

這可以通過思考的基礎設施來解釋:

  1. 當您發佈數據的Blob存儲上傳的URL,它是通過Blob存儲處理器發送,然後到GCS存儲。
  2. 當您將數據發佈到沒有GCS參數的blobstore時,速度更快,因爲blob存儲(從速度看似與GCS不同)距離處理程序比離GCS更近(進行任何推理您將瞭解基於這些時間差異的基礎結構以及所有關於GCS/blobstore的已知信息)
  3. 當您將數據從GAE放到GCS時,它離需要的地方更近一些 - 它位於數據中心內部,在谷歌的網絡裏面。當然你還是等待上傳到GAE。

您可以看看Regional Buckets,但請注意這是alpha,並且可能隨時更改,因此可能不是最好的基礎。如果您遇到奇怪的問題,您可以隨時撥打look into support