GCS可恢复上传速度

时间:2014-09-03 10:10:05

标签: java python file-upload google-cloud-storage gsutil

我对使用可恢复上传的Google云端存储上传速度有疑问。 我已经写了一个桌面java客户端来将大文件上传到GCS(它有一些专门的功能,这就是为什么gsutil不是我公司的答案)。在大约2个月前的测试运行期间,它很好地利用了可用的连接带宽,在25Mbps连接中大约20Mbps。该项目被冻结了将近2个月,现在当它重新开放时,同样的客户端上传的速度非常慢,速度大约为1.4Mbps,而且速度可达25Mbps。 我编写了简单的Python脚本来检查它是否会出现同样的问题并且速度稍快但仍然大约为2Mbps。 Gsutil工具的表现几乎和我的Python脚本一样。 我还在不同的网络基础设施上运行测试,上传速度超过50Mbps。

结果也很差:

  • Java客户端2.4Mbps
  • Python脚本3.2Mbps
  • gsutil 3.2Mbps

唯一改变的是Google Cloud Storage API版本。我使用的是JSON API,第一次测试是在v1beta API版本上运行的。 目前,如果我仍在使用折旧API或新API,则没有区别。

是否有人遇到过相同的上传速度下降?

您的平均上传速度是多少?

这种戏剧性上传性能下降的可能原因是什么?

复合对象的并行上传是否可以帮助我充分利用可用带宽?

1 个答案:

答案 0 :(得分:1)

为确定您可以预期的最高带宽,我们建议您运行gsutil perfdiag命令。

例如,要查看上传100 MB文件的效果如何:

gsutil perfdiag -t wthru -s 100M gs://bucketname

这将上传100MB文件五次并报告结果。我运行的示例输出:

------------------------------------------------------------------------------
                               Write Throughput                               
------------------------------------------------------------------------------
Copied a 100 MB file 5 times for a total transfer size of 500 MB.
Write throughput: 71.61 Mbit/s.

它还会输出许多其他可能有助于诊断问题的信息。如果perfdiag输出显示的吞吐量远高于您的应用程序,那么您的代码可能出现问题。如果perfdiag输出的带宽也很低,那么您的网络路径可能会出现问题,而这些路径可能有助于识别问题。如果这无法解决您的问题,请将结果文件(perfdiag -o output.json)通过电子邮件发送至gs-team@google.com。