【问题标题】:Gsutil uses a lot of memory when download multiple files with a lot of processesGsutil 在下载具有大量进程的多个文件时使用大量内存
【发布时间】: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


【解决方案1】:

我确实测试了下载 2GB 的文件并更改 -o "GSUtil:parallel_process_count=X" 更改了 Debian 和 Ubuntu 上的内存消耗:

  • 1 个并行进程:85MB
  • 5 个并行进程:125MB
  • 10 并行 进程:165MB
  • 50 个并行进程:310MB

如果您在 GKE 上使用 gsutil 和 CentOS container image 时遇到内核崩溃问题,切换到 Ubuntu 映像应该会有所帮助。

如果同时下载 3 个文件内存消耗太高,可以考虑只下载 1 或 2 个。

还有high memory usage with GKE的已知问题

【讨论】:

  • 我正在使用 ubuntu 作为容器映像,与使用以下命令下载 2G 文件时的结果相比,我的内存使用量大约是您的两倍:gsutil -o "GSUtil:parallel_thread_count=1" -o "GSUtil :sliced_object_download_max_components=X" -o "GSUtil:parallel_process_count=X" cp 存储桶/文件。我想知道为什么 gsutil 在不同的环境下消耗不同数量的 ram...
  • 我的第一个测试是在 Debian 上,现在我在 Ubuntu 上进行了尝试,得到了非常相似的结果。您使用的是什么 Google Cloud SDK?我正在使用 252.0.0 和 gsutil 4.39
  • 嗨,我的环境中没有安装 Google Cloud SDK,我的 gsutil 是 4.38。您是否在命令中指定“GSUtil:parallel_thread_count=1”,看起来多进程比多线程消耗更多的内存,但性能更好。
猜你喜欢
  • 1970-01-01
  • 2014-08-06
  • 2018-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-20
  • 2023-03-10
  • 1970-01-01
相关资源
最近更新 更多