文件上传到Google Cloud Storage的速度很慢

Slow file uploading to Google Cloud Storage

我注意到向Google Cloud Storage的上传速度非常低,与将文件上传至Google云端硬盘相比,速度慢了将近2.5倍。以下是截屏视频,比较了两者用于上传1GB文件的情况:

https://gyazo.com/c3488bd56b8118043b7df5aab813db01

这只是一个示例,但我也尝试过使用gsutil命令行工具,并使用它们提供的所有建议来最快地上传大型文件(例如,使用parallel_composite_upload_threshold)。它仍然比我习惯的慢。慢得多。

有什么方法可以提高此上传速度?为什么上传到云端硬盘的速度要比上传到GCS的速度快得多?


我花了一天的时间使用console.google.cloud.com或使用浏览器上传了大约30.000张图像(100kb /图像),就像您上传的一样。然后,我尝试使用gsutil在Ubuntu中通过终端上载文件。请按照此处的说明进行操作:https://cloud.google.com/storage/docs/uploading-objects。

对于单个文件:

1
gsutil cp [LOCAL_OBJECT_LOCATION] gs://[DESTINATION_BUCKET_NAME]/

对于目录:

1
gsutil -m cp -R [DIR_NAME] gs://[DESTINATION_BUCKET_NAME]

使用gsutil的速度非常快,我上传了100.000张图像(100?400kb /图像),只用了不到30分钟的时间。

老实说,我没有做很多研究,为什么使用gsutil完全比使用控制台快。可能是因为gsutil提供了-m选项,该选项执行并行(多线程/多处理)复制,这可以显着提高上载性能。 https://cloud.google.com/storage/docs/composite-objects


如果您不知道。 Google存储桶使用的过滤器与Google驱动器不同。 Google存储桶使用某种过滤器对其进行索引或其他操作。使其减速。 Google播放了一段视频,解释了速度下降及其解决方法。


嗯,首先这两种产品都有不同的用途。尽管可以看到云端硬盘更多是使用云的小型文件存储,但云存储专注于与Google Cloud Platform产品的集成,数据可靠性,可访问性,从小到大的可用性。

您需要考虑到将文件上传到Cloud Storage时,该文件被视为blob对象,这意味着它必须经过一些额外的步骤,例如,对象数据需要在加密时进行加密。上传到Cloud Storage,并检查上传对象的一致性。

同样,根据存储桶的配置,上载的对象可能已启用版本控制,并且存储桶可能同时将数据存储在各个区域中,这可能会降低文件上载的速度。

我认为其中一些要点,特别是加密,是使文件在云端存储中的上传速度比云端硬盘慢的原因。

不过,我建议将要上传的存储区放在离您所在区域最近的区域,这可能会有所作为。