现在我在谷歌云存储(GCS)上存储~300Gb的图像。我有一个在谷歌计算引擎(GCE)虚拟机(VM)上运行的软件,需要读取所有这些图像并按顺序处理它们。这些图像不需要加载到内存中,可以作为输入流式传输到程序中。我找到一种有效的方法很难找到。
我试过了:
1)GCSfuse。使用GCSfuse,我可以在我的VM上安装gcs-bucket并直接访问数据。这开始看似理想,但I / O速度过慢。
2)GSutil。这允许我使用" gsutil cp gs://my-gcs-bucket/training_data/*.jpg - |将数据流式传输到我的程序中。 &#34 ;.这比GCSfuse好得多,但仍然很慢。
我想我有两个主要问题。 1)访问存储在GCS存储桶中的数据并将其作为GCE VM上的脚本输入流的最快方法是什么?我需要每天做一次,但需求会随着时间的推移而增加。 2)如果没有快速而聪明的方法来做到这一点,我在存储方面有哪些替代方案?我应该使用不同的谷歌云产品吗?我想避免将所有数据直接加载到VM上。
谢谢!
答案 0 :(得分:1)
gsutil
应该是从Google云存储中获取商品的最快方式。 GCS通常应该为您提供相当高的吞吐量,但是第一个字节的延迟很长。
如果您有大量小文件(jpeg训练数据可能属于该类别),您可能希望将它们tar / zip压缩到更大的档案中。
如果这对您不起作用,并且您的所有文件都少于1MB,则可以使用Google Cloud Datastore,这种方式更贵,但延迟时间更短。