【发布时间】:2014-07-11 13:09:01
【问题描述】:
我正在寻找一种将大量文件(超过 1000 万个)从 S3 存储桶移动到 Google Cloud Storage 的方法,但到目前为止我遇到了一些问题。
目前我正在使用 gsutil,因为它对 S3 和 GCS 之间的通信具有原生支持,但我得到的性能并不好。也许我只是做错了,但我一直在使用以下 gsutil 命令:
gsutil -m cp -R s3://bucket gs://bucket
我启动了一个 c3.2xlarge AWS 实例(16GB 8CPU),这样我就有足够的马力,但看起来这个盒子的吞吐量并没有比 2GB 2CPU 盒子更好,我不明白?
我一直在搞乱~/.boto 配置文件,目前设置了以下选项:
parallel_process_count = 8
parallel_thread_count = 100
我认为肯定将线程数增加 10 倍会有所帮助,但从我的测试来看,到目前为止并没有什么不同。还有什么可以提高性能的吗?
或者是否有更好的工具将 S3 数据移动到 GCS?我正在查看 SDK,并且很想用 Java 编写一些东西。
【问题讨论】:
-
您要移动的数据的(大约)总大小是多少?您看到的性能(每秒文件数)是多少?即使使用更少的 CPU 和更多线程,您也可以获得相同的性能,这意味着您的带宽受到限制。根据数据的分布方式,您可以按前缀对副本进行分区,并使用多个运行 gsutil 的 VM 来加快速度。
-
@TravisHobrla 大约有 800GB 的数据,我不知道如何检查性能?我希望带宽不会成为问题,因为这是从 EC2 服务器到 Google,但我肯定会检查网络饱和度。
-
您可能有兴趣注册Online Cloud Import
-
对于这种大小的数据,gsutil 可能比在线云导入更容易。要测试性能,您可以复制一小部分文件。文件是否分布在您可以分区的任何前缀上?然后你可以使用多个实例来加速它。
-
@TravisHobrla 我可以把它分成一点,但它会很难看。我发现这个工具非常适合 S3 - github.com/cobbzilla/s3s3mirror。我想知道我是否可以将其适应 GCS?
标签: amazon-s3 google-cloud-storage cloud-storage