从GCS到S3的传输-提高速度

时间:2018-11-26 10:58:37

标签: amazon-web-services amazon-s3 google-cloud-platform google-cloud-storage

  • 我们每周使用以下gsutil命令从GCS到S3进行转移。 5,000个压缩对象,每个〜82 MB-组合大小约为380 GB。如果有任何相关性,它将导出Redshift要使用的数据
  • 从本地Hadoop集群到S3的相同转移花费了不到1小时的时间。现在使用gsutil,需要4到5个小时。
  • 我知道,gsutil在幕后从GCS下载文件,然后将它们上传到S3,这增加了一些开销。因此,为了获得更快的速度,我尝试在S3和GCS存储桶的地理位置上的Compute Engine上执行gsutil,但速度同样慢
  • 我玩过parallel_process_count和parallel_thread_count参数,但没什么作用

    gsutil -m rsync -r -n GCS_DIR S3_DIR
    

我的问题是:

  • 还有什么我可以做以加快速度吗?
  • 您会尝试使用什么parallel_process_count和parallel_thread_count组合?
  • 是否有办法找出造成瓶颈的阶段(如果有)?即是上传还是下载阶段?
  • 看看日志,下面是否表示一段时间内带宽为0%?

    Copying gcs://**s3.000000004972.gz 
    [Content-Type=application/octet-stream]... 
    [4.8k/5.0k files][367.4 GiB/381.6 GiB]  96% Done     0.0 B/s     
    

预先感谢:)

1 个答案:

答案 0 :(得分:0)

parallel_process_count和parallel_thread_count的最佳值取决于网络速度,CPU数量和可用内存-您recommended进行了一些实验以找到最佳值。

您可以尝试使用perfdiag来获取有关Google Cloud一侧的存储桶的更多信息-该命令针对给定的存储桶运行一套诊断测试。

您共享的输出表明一段时间内没有上载,这可能是由于gsutil对上载进行分块的方式。

作为加快向亚马逊转移的最终建议,您可以尝试使用Apache Beam / Dataflow