【发布时间】:2019-11-09 20:53:51
【问题描述】:
我需要使用 gsutil 下载多个文件,我注意到 gsutil 在下载多个文件时会占用大量内存。 (下载三个 2G 文件,每个文件有 9 个进程时,大约需要 1-2 GB 内存)。有没有办法调整 gsutil 的内存使用情况?这对我来说很重要,因为我在 GKE 中运行 gsutil,如果使用太多内存(超过限制),容器会被杀死
另一个问题:gsutil 似乎无法在单个命令中下载同名文件(一个会覆盖另一个?)。所以我没有使用 -m 选项。相反,我使用单个 gsutil 命令下载每个文件: gsutil -o "GSUtil:parallel_thread_count=1" -o "GSUtil:sliced_object_download_component_size=250M" -o "GSUtil:sliced_object_download_max_components=9" -o "GSUtil:parallel_process_count=9" cp bucket/file desFile
【问题讨论】:
-
您使用的是什么 GKE container image?如果您使用的是 CentOS,切换到 Ubuntu 应该会有所帮助。
-
下载同名文件是什么意思?存储桶“文件夹”中的两个对象不能具有相同的名称。如果您将具有相同名称的下一个对象复制到存储桶,旧的对象将被覆盖。 See object names considerations for more information.
-
@PawelCzuczwara 我实际上是指不同存储桶“文件夹”中的文件,例如,自 gsutil 以来,gsutil 不适用于在单个命令中下载 /bucket1/path1/output 和 /bucket2/path2/output将下载到他们两个的输出,一个会覆盖另一个。我想知道是否有办法解决这个问题,以便我可以在一个命令中下载所有文件。
-
你试过
gsutil cp -r gs://my-bucket/data dir递归subdirectories as described in the docs -
你也可以试试
gsutil rsync -r data gs://mybucket/dataas described in the docs
标签: google-cloud-storage gsutil