【问题标题】:GCS to S3 transfer - improve speedGCS 到 S3 传输 - 提高速度
【发布时间】:2019-04-28 00:17:33
【问题描述】:
  • 我们使用下面的 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 组合?
  • 有什么方法可以找出哪个阶段造成了瓶颈(如果有的话)? IE。是上传还是下载阶段?
  • 查看日志,以下是否意味着一段时间内带宽为 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     
    

提前致谢:)

【问题讨论】:

  • 为什么不使用Storage Transfer Service 将对象从GCS 传输到S3?这是您的用例的首选方法。
  • Storage Transfer Service 只能用于 S3加载。它不允许您将数据导出到 S3。

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


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-19
    • 1970-01-01
    • 1970-01-01
    • 2019-03-19
    • 2021-12-23
    • 2014-10-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多