Cloud Storage FUSE의 캐싱 개요

이 페이지에서는 Cloud Storage FUSE에 사용할 수 있는 캐싱 옵션과 각 캐시 유형을 구성하는 방법을 자세히 설명합니다.

데이터 검색 성능을 높이기 위해 Cloud Storage FUSE는 네 가지 유형의 캐싱 옵션을 제공합니다.

고려사항

  • 파일 캐싱, 통계 캐싱, 유형 캐싱 또는 목록 캐싱을 사용 설정하면 성능은 향상되지만 일관성이 저하될 수 있으며, 이는 일반적으로 변경 비율이 높은 여러 클라이언트를 사용하여 동일한 버킷에 액세스할 때 발생합니다. 일관성에 미치는 영향을 줄이려면 버킷을 읽기 전용으로 마운트하는 것이 좋습니다. 캐싱 동작에 관한 자세한 내용은 GitHub의 Cloud Storage FUSE 시맨틱스 문서를 참조하세요.

  • 파일 캐시 항목이 아직 TTL을 기준으로 만료되지 않았고 파일이 캐시에 있으면 Cloud Storage에 대해 어떠한 요청 없이 로컬 클라이언트 캐시에서 해당 파일에 대한 읽기 작업이 제공됩니다.

  • 파일 캐시 항목이 TTL을 기준으로 만료된 경우 먼저 Cloud Storage로 GET 파일 속성 호출이 실행되고, 파일이 캐시에 없거나 파일 속성에서 파일 콘텐츠가 변경되었음을 나타내는 경우 Cloud Storage에서 파일 콘텐츠가 검색됩니다. 두 작업 모두 네트워크 지연 시간이 발생합니다. 캐시된 파일 속성이 무효화되었지만 파일 콘텐츠가 캐시에 있고 객체 생성이 변경되지 않은 경우, GET 파일 속성 호출을 통해 파일 콘텐츠의 유효성을 확인한 후에만 캐시에서 파일 콘텐츠가 제공됩니다.

  • Cloud Storage FUSE 클라이언트가 캐시된 파일의 콘텐츠 또는 파일 속성을 수정하는 경우 해당 파일의 캐시 항목이 즉시 무효화되어 동일한 클라이언트의 다음 읽기에서 일관성이 보장됩니다. 하지만 여러 클라이언트가 동일한 파일 콘텐츠 또는 파일 속성에 액세스하고 각 항목이 캐시되는 경우, 개별 TTL 설정으로 인해 무효화될 때까지 해당 클라이언트는 파일 콘텐츠 또는 파일 속성의 캐시된 버전을 계속 읽습니다.

  • 캐시 스래싱을 방지하려면 전체 데이터 세트가 캐시 용량에 적합해야 합니다. 또한 캐시 미디어가 제공할 수 있는 최대 용량과 성능도 고려하세요. 프로비저닝된 캐시의 최대 성능, 용량 한도 또는 둘 다에 도달한 경우 Cloud Storage FUSE보다 한도가 훨씬 높은 Cloud Storage에서 직접 읽는 것이 좋습니다.

캐시된 데이터의 읽기 경로

Cloud Storage FUSE 캐시는 캐시로 처리된 후 반복 읽기를 가속화합니다. 처음 읽기와 캐시 부적중은 모두 Cloud Storage로 직접 이동하며, 일반적인 Cloud Storage 네트워크 지연 시간이 적용됩니다. 최초 읽기 성능을 개선하려면 메타데이터 캐시 자동 입력을 참고하세요.

파일 캐싱 개요

Cloud Storage FUSE 파일 캐시는 로컬 파일 시스템으로 지원되는 캐시 스토리지에서 반복 파일 읽기를 제공하는 클라이언트 기반 읽기 캐시입니다. 파일 캐싱에 대해 자세히 알아보려면 파일 캐싱 페이지를 참고하세요.

병렬 다운로드

파일 캐싱을 사용 설정하면 Cloud Storage FUSE 버전 2.12 이상에서 병렬 다운로드가 자동으로 사용 설정됩니다. 병렬 다운로드는 파일 캐시 디렉터리를 미리 가져오기 버퍼로 사용하여 파일을 동시에 다운로드하도록 여러 작업자를 사용함으로써 처음 읽기를 포함하여 크기가 1GB를 초과하는 대용량 파일의 읽기 성능을 가속화합니다. 병렬 다운로드를 사용하여 모델 서빙, 체크포인트 복원, 대형 객체 학습과 같은 인공지능(AI) 및 머신러닝(ML) 워크로드의 성능을 최적화할 수 있습니다. 병렬 다운로드에 대한 자세한 내용은 병렬 다운로드를 참고하세요.

파일 캐싱 구성

파일 캐싱을 구성하는 방법을 알아보려면 Cloud Storage FUSE 파일 캐싱 사용을 참고하세요.

통계 캐싱 개요

Cloud Storage FUSE 통계 캐시는 크기, 수정 시간 또는 권한과 같은 파일 속성 관련 작업에 대한 성능을 향상시켜 주는 객체 메타데이터용 캐시입니다. 통계 캐시를 사용하면 Cloud Storage에 통계 객체 요청을 전송하는 대신 캐시된 데이터를 사용하여 작업을 수행함으로써 지연 시간을 단축시킬 수 있습니다. 통계 캐싱에 대해 자세히 알아보려면 GitHub의 시맨틱스 문서를 참고하세요.

통계 캐시 구성

통계 캐시는 기본적으로 사용 설정되어 있으며 Cloud Storage FUSE 구성 파일을 사용하여 구성할 수 있습니다. 캐시의 최대 크기는 다음 방법 중 하나를 사용하여 제어됩니다.

통계 캐시 구성의 기본값 및 권장 값에 대한 자세한 내용은 Cloud Storage FUSE CLI 옵션구성 파일 페이지를 참고하세요.

음성 통계 캐싱 구성

Cloud Storage FUSE는 존재하지 않는 파일 또는 음성 결과에 대한 통계 캐시 항목의 TTL을 설정할 수 있는 음성 통계 캐싱 기능도 제공합니다. 음수 통계 캐시의 TTL은 다음 방법 중 하나를 사용하여 제어됩니다.

유형 캐싱 개요

Cloud Storage FUSE 유형 캐시는 파일, 디렉터리, 심볼릭 링크와 같은 캐시된 유형 정보를 저장하는 메타데이터 캐시로, 파일 또는 디렉터리 존재와 관련된 메타데이터 작업의 성능을 가속화합니다. 유형 캐시를 사용하면 이 정보를 로컬에 저장하여 파일이나 디렉터리가 존재하는지 확인하기 위해 Cloud Storage에 요청하는 횟수가 줄어들어 지연 시간이 개선됩니다. 유형 캐싱에 대해 자세히 알아보려면 GitHub의 시맨틱스 문서를 참고하세요.

유형 캐싱 구성

유형 캐시는 기본적으로 사용 설정되어 있으며 Cloud Storage FUSE 구성 파일 또는 Cloud Storage FUSE CLI를 사용하여 구성할 수 있습니다. 캐시의 최대 크기는 다음 방법 중 하나를 사용하여 제어됩니다.

유형 캐싱 및 권장 값에 대한 자세한 내용은 CLI 옵션 또는 구성 파일 페이지를 참고하세요.

캐시의 TTL은 다음 방법 중 하나를 사용하여 제어됩니다.

목록 캐싱 개요

Cloud Storage FUSE 목록 캐시는 디렉터리 및 파일 목록, 또는 목록 작업 속도를 개선하는 응답인 ls를 위한 것입니다. 목록 캐싱은 AI/ML 학습 실행과 같이 실행의 일부로 전체 디렉터리 목록을 반복하는 워크로드에 특히 유용합니다.

목록 캐시는 머신의 메모리에 보관되고 Cloud Storage FUSE에 의해 제어되는 통계 및 유형 캐시와 달리 메모리 가용성을 기반으로 커널에 의해 제어되는 페이지 캐시의 메모리에 보관됩니다.

목록 캐싱 구성

다음 방법 중 하나를 사용하여 목록 캐싱을 사용 설정할 수 있습니다.

목록 캐싱을 사용 설정하고 구성하려면 Cloud Storage FUSE 구성 파일 또는 Cloud Storage FUSE CLI 옵션 페이지를 참고하세요.

파일, 통계, 유형 캐시 무효화 구성

다음 섹션에서는 모든 캐시 유형에 대해 캐시 무효화를 구성하는 방법에 대해 설명합니다.

파일, 통계, 유형 캐시의 경우 다음 방법 중 하나를 사용하여 Cloud Storage에서 가져온 시점부터 만료되어 새로고침해야 하는 시점까지 캐시된 메타데이터가 사용되는 기간인 TTL을 초 단위로 지정합니다.

0보다 큰 값으로 지정하면 파일 캐시에 대한 메타데이터는 지정한 기간 동안만 유효합니다. 목록 캐싱의 경우 일관성 요구의 균형을 유지하면서 반복 읽기 간의 예상 시간을 기준으로 값을 늘리는 것이 좋습니다. 데이터 변경의 중요도와 빈도에 따라 워크로드에서 허용하는 만큼 값을 높게 설정하는 것이 좋습니다. 메타데이터 항목이 유효하지 않게 되면 후속 읽기는 Cloud Storage에서 쿼리됩니다.

캐시된 메타데이터가 만료되어 새로고침해야 하는 시점까지의 특정 TTL을 초 단위로 나타내는 값을 허용하는 것 외에도 다음 값을 사용하여 파일 읽기 방식을 지정할 수 있습니다.

  • 0: 캐시의 일관성을 유지하기 위해 캐시에서 제공되는 파일을 확인하도록 Cloud Storage에 GET 메타데이터 호출을 실행하여 가장 최신의 데이터가 포함된 파일을 읽게 합니다. 캐시의 파일이 최신 상태인 경우 캐시에서 직접 제공됩니다. 0 이외의 값을 지정하면 메타데이터를 먼저 확인하기 위해 항상 Cloud Storage에 호출해야 하므로 성능이 저하될 수 있습니다. 파일이 캐시에 있고 변경되지 않은 경우 GET 메타데이터 호출 후 일관성 있게 파일이 캐시에서 제공됩니다.

  • -1: 사용 가능한 경우 일관성을 확인하지 않고 항상 캐시에서 파일을 읽게 합니다. 일관성을 확인하지 않고 파일을 제공하면 일관되지 않은 데이터를 제공할 수 있으며, 변경되지 않는 데이터가 있는 작업에서 실행되는 워크로드에만 일시적으로 사용해야 합니다. 예를 들어 -1 값 사용은 여러 에포크에 걸쳐 동일한 데이터를 변경 없이 읽어들이는 머신러닝 학습에 유용합니다.

목록 캐시 무효화

목록 캐시 무효화는 다음 방법 중 하나를 사용하여 0보다 큰 값을 지정하여 설정됩니다.

  • --kernel-list-cache-ttl-secs CLI 옵션
  • file-system:kernel-list-cache-ttl-secs 필드

디렉터리 목록 응답은 커널의 페이지 캐시에 보관되며 지정한 기간 동안 유효하게 유지됩니다. -1 값을 지정하면 Cloud Storage FUSE는 목록 캐시 만료를 사용 중지하고, 사용 가능한 경우 캐시에서 목록 응답을 반환합니다. 0 값을 지정하면 목록 캐시가 사용 중지됩니다.

다음 단계