성능 조정
Singularity는 데이터 준비 성능을 최적화하기 위해 다양한 구성을 제공합니다. 이 가이드에서는 이러한 구성을 설명하고 효과적으로 조정하는 지침을 제공합니다.
인라인 준비
설명: 인라인 준비는 CAR 파일을 저장하는 데 필요한 추가 디스크 공간이 없어집니다. 그러나 데이터베이스 조회와 저장에 약간의 오버헤드가 발생합니다.
영향: 오버헤드는 일반적으로 무시할 수 있습니다. 그러나 많은 작은 파일이 포함된 데이터셋의 경우 중요해질 수 있습니다.
구성: 비활성화하려면
singularity prep create
와 함께--no-inline
을 사용하십시오.더 읽어보기: 인라인 준비
DAG 업데이트
설명: 준비 과정에서 Singularity는 각 디렉토리에 대해 DAG와 CID를 새로 고칩니다. 이는 변경 사항을 실시간으로 추적하는 데 유용합니다.
영향: CAR 파일이 준비될 때마다 디렉토리가 업데이트되므로 약간의 데이터베이스 오버헤드가 발생합니다.
구성: 비활성화하려면
singularity prep create
와 함께--no-dag
를 사용하십시오.
데이터 준비의 병렬 처리
스캔
설명: 스캔은 소스 저장소를 탐색하여 파일 목록을 만드는 작업입니다. 로컬 저장소에서는 빠르지만 S3와 같은 원격 저장소에서는 느릴 수 있습니다.
구성:
병렬 처리 활성화:
singularity storage create
또는singularity storage update
와 함께--client-scan-concurrency <숫자>
를 사용하십시오.참고: 활성화하면 파일이 결정적인 순서로 처리되지 않을 수 있습니다.
패킹
설명: 패킹은 여러 파일을 단일 CAR 파일로 병합하는 것으로, CPU와 IO 모두를 많이 사용하는 작업입니다. 네트워크 제약이 있는 원격 저장소의 경우, 병렬 처리를 늘리는 것이 유리합니다.
구성:
병렬 처리 조정:
singularity run dataset-worker
와 함께--concurrency <숫자>
를 사용하십시오.
서버의 수정 시간 사용
설명:
AWS S3
와 같은 일부 원격 저장소는 사용자 정의mtime
및 서버 측의 최종 수정 시간을 제공합니다. 기본적으로 Singularity는 사용자 정의mtime
을 확인하고 사용할 수 있으면 사용합니다. 그렇지 않으면 서버의 최종 수정 시간을 사용합니다.영향: 사용자 정의
mtime
확인을 건너뛰고 직접 서버의 최종 수정 시간을 사용하면 원격 저장소로의 요청 수를 줄일 수 있습니다.구성:
singularity storage create
또는singularity storage update
와 함께--client-use-server-mod-time
을 사용하여 서버의 시간을 우선시하고 객체 메타데이터 검색을 우회하십시오.
재시도 전략
네트워크 요청 재시도
설명: 실패한 원격 폴더 목록 또는 파일 개방에 대해 Singularity는 RClone의 재시도 메커니즘을 활용합니다.
구성: 재시도 횟수를 늘리려면
singularity storage create
또는singularity storage update
와 함께--client-low-level-retries <숫자>
를 사용하십시오.
네트워크 IO 재시도
설명: 성공한 네트워크 요청에도 불구하고, 불안정한 네트워크 연결로 인해 네트워크 IO가 실패할 수 있습니다. Singularity는 재시도와 마지막 성공 지점부터 재개를 지원합니다.
구성: 아래 플래그를
singularity storage create
또는singularity storage update
와 함께 사용하십시오.
접근 불가능한 파일 건너뛰기
설명: 권한 문제로 인해 원격 저장소의 일부 파일에 액세스할 수 없는 경우가 있습니다. 이러한 문제는 파일을 열 때만 나타나며, 이로 인해 패킹 작업이 실패할 수 있습니다.
구성:
singularity storage create
또는singularity storage update
와 함께--client-skip-inaccessible-files
를 사용하여 접근할 수 없는 파일을 건너뛰십시오.
Last updated