2016-06-22 2 views
0

지금은 Google 클라우드 저장소 (GCS)에 ~ 300Gb의 이미지를 저장하고 있습니다. Google Compute Engine (GCE) 가상 컴퓨터 (VM)에서 실행되는 소프트웨어가 있으며 이러한 이미지를 모두 읽고 순차적으로 처리해야합니다. 이러한 이미지는 메모리에로드 할 필요가 없으며 프로그램의 입력으로 스트리밍 할 수 있습니다. 이 작업을 효율적으로 수행하는 데 많은 어려움을 겪고 있습니다.Google 클라우드 스토리지에서 데이터에 액세스하여 Google 클라우드 VM에서 실행되는 소프트웨어로 스트리밍하는 가장 빠른 방법은 무엇입니까

나는 시도 :

1) GCSfuse. GCSfuse를 사용하면 VM에 gcs-bucket을 마운트하고 데이터에 직접 액세스 할 수 있습니다. 이것은 처음에는 이상적 이었지만 I/O는 매우 느립니다.

2) GSutil. 이렇게하면 "gsutil cp gs : //my-gcs-bucket/training_data/*.jpg - |"를 사용하여 프로그램에 데이터를 스트리밍 할 수 있습니다. 이것은 GCSfuse보다 훨씬 효과적이지만 여전히 느립니다.

두 가지 주요 질문이있는 것 같습니다. 1) GCS 버킷에 저장된 데이터에 액세스하고이를 GCE VM의 스크립트에 입력으로 스트리밍하는 가장 빠른 방법은 무엇입니까? 하루에 한 번씩이 작업을 수행해야하지만 시간이 지남에 따라 수요가 증가 할 수 있습니다. 2) 신속하고 똑똑한 방법이 없다면 저장 용량면에서 어떤 대안이 있습니까? 다른 Google 클라우드 제품을 사용해야합니까? 모든 데이터를 VM에 직접로드하지 않아도됩니다.

감사합니다.

답변

0

gsutil은 Google 클라우드 스토리지에서 항목을 가져 오는 가장 빠른 방법이어야합니다. GCS는 일반적으로 매우 높은 처리량을 가져야하지만 첫 번째 바이트까지 대기 시간이 길어야합니다.

많은 수의 작은 파일이있는 경우 (jpeg 교육 데이터가 해당 카테고리에 속할 수 있음) 더 큰 아카이브로 압축/압축 할 수 있습니다.

그래도 문제가 해결되지 않고 모든 파일의 크기가 1MB 미만인 경우 Google Cloud Datastore를 사용할 수 있습니다. 비용이 많이 들지만 지연 시간은 훨씬 적습니다.

관련 문제