본문 바로가기
REZ/ADVACED

Resolve Caching

by 르면가게 2024. 12. 24.

Rez의 캐싱 (Caching)

Rez는 성능 최적화를 위해 Resolve CachingPackage Caching이라는 두 가지 주요 캐싱 메커니즘을 제공합니다. 이를 통해 환경 해결(resolve) 속도를 높이고 네트워크 비용을 줄일 수 있습니다.


Resolve Caching

  • 목적: 환경 해결 결과를 Memcached에 캐싱하여 재사용. 동일한 요청은 다시 계산하지 않고 캐싱된 결과를 반환.
  • 특징:
    • Memcached를 사용하여 빠르고 효율적인 메모리 기반 저장.
    • 스튜디오 환경에서는 여러 시스템에서 동일한 요청을 캐싱된 결과로 즉시 처리 가능.
    • 새 패키지 버전이 릴리스되면 자동으로 캐시가 무효화됨.
  • 설정:
memcached_uri = ["127.0.0.1:11211"]
  • 디버깅 및 통계:
    • REZ_DEBUG_MEMCACHE 환경 변수를 설정하거나 rez-memcache 명령어로 캐시 상태를 확인.
    • 캐시 적중(hit) 비율, 사용 메모리, 캐시 만료 상태 등을 점검 가능.

Package Caching

  • 목적: 패키지의 콘텐츠를 로컬 디스크에 복사하여 실행 속도를 개선하고 네트워크 부하를 줄임.
  • 특징:
    • 패키지 정의가 아닌 **패키지 페이로드(루트 디렉토리)**만 캐싱.
    • 네트워크 공유 저장소에서 실행 파일을 로드하는 대신 로컬에 복사본 저장.
  • 설정:
    • cache_packages_path를 지정하여 캐시 경로 설정.
    • 개별 패키지에 대해 캐싱 가능 여부 설정 (cachable = False).
    • 캐싱 비활성화 옵션: rez-env --no-pkg-cache.
  • 작동 방식:
    • 개별 Variants(패키지의 특정 버전)를 캐싱하며, 비동기적으로 로컬 디스크에 복사.
    • 캐시가 점진적으로 증가하며, 장기적으로 더 많은 변형(variants)을 캐싱.
  • 검증:
    • rez-context 명령어를 통해 캐싱된 패키지 확인:
Flask-1.1.2 /home/ajohns/package_cache/Flask/1.1.2/... (cached)

캐시 관리

  • 캐시 청소(Cleaning):
    • 사용되지 않거나 오류가 있는(stalled) 캐시 항목을 제거.
    • 설정 값 package_cache_max_variant_days를 통해 일정 기간 사용되지 않은 항목 자동 삭제.
    • 명령어로 수동 삭제 가능:
$ rez-pkg-cache --clean
  • 로그 확인:
    • 캐싱 로그를 통해 캐싱 프로세스와 오류를 점검:
$ rez-pkg-cache --logs

'REZ > ADVACED' 카테고리의 다른 글

Plugins  (0) 2024.12.24
Pip  (0) 2024.12.24
Managing packages  (0) 2024.12.24
Suites  (0) 2024.12.24
Context bundles  (0) 2024.12.24