Cloud Storage FUSE 성능 및 권장사항

이 페이지에서는 지연 시간, 대역폭, 캐싱, 재시도 측면에서 Cloud Storage FUSE의 성능과 Cloud Storage FUSE를 사용할 때의 권장사항에 대해 설명합니다.

읽기 및 쓰기

Cloud Storage FUSE는 임의의 읽기 및 쓰기 작업 부하에 비해 순차적 읽기 및 쓰기 작업 부하에서 더 나은 성능을 제공합니다. Cloud Storage FUSE는 휴리스틱을 사용하여 파일을 순차적으로 읽을 때 이를 감지합니다. 따라서 동일한 TCP 연결을 통해 Cloud Storage FUSE가 Cloud Storage에 더 작고 큰 읽기 요청을 보낼 수 있습니다.

순차 읽기 성능을 최적화하려면 크기가 5MB~200MB인 파일을 업로드하고 읽는 것이 좋습니다. 임의 읽기 성능을 최적화하려면 약 2MB 크기의 파일을 업로드하고 읽는 것이 좋습니다.

IOPS(초당 쿼리 수)

Filestore는 Cloud Storage에서 '초당 쿼리 수'라고도 하는 높은 초당 입출력 작업 수(IOPS)가 필요한 워크로드에 Cloud Storage FUSE보다 더 나은 옵션입니다. 또한 Filestore는 단일 파일 시스템에서 매우 높은 IOPS와 낮은 지연 시간을 구현하는 데 더 나은 옵션입니다.

지연 시간 및 처리량

Cloud Storage FUSE는 로컬 파일 시스템에 비해 지연 시간이 깁니다. 작은 파일을 한 번에 하나씩 읽거나 쓰면 처리량이 줄어듭니다. API가 여러 번 개별 호출되기 때문입니다. 한 번에 여러 큰 파일을 읽거나 쓰면 처리량이 증가할 수 있습니다.

Cloud Storage FUSE의 파일 시스템 지연 시간은 한 번에 파일 하나만 읽고 쓰는 rsync에 영향을 줍니다. 여러 파일을 버킷에서 동시에 전송하려면 gsutil -m rsync를 실행하여 gsutil을 사용해 볼 수 있습니다. 자세한 내용은 gsutil rsync 문서를 참조하세요.

비율 제한

Cloud Storage FUSE가 Cloud Storage로 보내는 트래픽 속도를 제한하려면 gcsfuse mount 명령어의 일부로 다음 옵션을 사용하면 됩니다.

  • --limit-ops-per-sec 옵션은 Cloud Storage FUSE가 Cloud Storage로 요청을 보내는 속도를 제어합니다.

  • --limit-bytes-per-sec 옵션은 Cloud Storage FUSE가 Cloud Storage에서 데이터를 다운로드하는 대역폭을 제어합니다.

이러한 옵션에 대한 자세한 내용은 gcsfuse mount 문서를 참조하세요.

모든 비율 제한은 근사치이며 8시간 동안 수행됩니다. 기본적으로 비율 제한이 적용되지 않습니다.

업로드 절차 제어

기본적으로 Cloud Storage FUSE에서 Cloud Storage로의 실패한 요청은 값이 기본 1(1분)인 지정된 백오프 기간까지 지수 백오프로 재시도됩니다. 백오프 기간이 지정된 한도를 초과하면 재시도가 중지됩니다. gcsfuse mount 호출의 일부로 --max-retry-sleep 옵션을 사용하여 백오프 기간을 지정할 수 있습니다. 값이 0이면 재시도를 사용 중지합니다.

--max-retry-sleep 옵션에 대한 자세한 내용은 gcsfuse mount 문서를 참조하세요.

캐싱

기본적으로 Cloud Storage FUSE는 통계 캐싱 및 유형 캐싱을 사용합니다. gcsfuse mount 호출의 일부로 --stat-cache-capacity, --stat-cache-ttl, --type-cache-ttl 옵션을 사용하여 Cloud Storage FUSE의 캐싱 동작을 제어할 수 있습니다.

  • --stat-cache-capacity 옵션은 통계 캐시의 크기를 제어합니다.

  • --stat-cache-ttl 옵션은 Cloud Storage FUSE가 통계 항목을 캐시하는 기간을 지정합니다.

  • --type-cache-ttl 옵션은 Cloud Storage FUSE가 Cloud Storage에 있는 객체의 매핑을 파일 또는 디렉터리와 같은 해당 유형에 캐시하는 기간을 지정합니다.

통계 캐싱 및 유형 캐싱 옵션에 대한 자세한 내용은 gcsfuse mount 문서를 참조하세요.

고려사항

마운트된 버킷의 모든 객체를 나열하면 (예: ls 실행) Cloud Storage FUSE가 Cloud Storage에서 Objects: list API를 호출합니다. API는 결과를 페이지로 나눕니다. 즉, 버킷에 있는 객체 수에 따라 Cloud Storage FUSE에서 여러 호출을 수행해야 할 수 있습니다. 이로 인해 목록 작업 비용이 높고 속도가 느려질 수 있습니다.

벤치마크

Cloud Storage FUSE에서 부하 테스트를 수행하는 방법은 GitHub 문서의 성능 벤치마크를 참조하세요.