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