컴퓨트 크기와 제한

컴퓨트 크기와 제한

각 샌드박스에 컴퓨트 크기를 선택하고 애플리케이션의 리소스 사용을 계정의 할당량(quota) 안에서 유지해요. 요청 속도 제한(rate limit)도 애플리케이션이 API 요청을 보낼 수 있는 속도를 제약해요.

출처: 문서

본문

참고: Docker Sandboxes API와 SDK는 실험적(experimental)이에요. 기능, 인터페이스, 동작이 바뀔 수 있어요.

컴퓨트 크기 (Compute sizes)

Cloud Sandboxes는 다음 CPU·메모리 쌍을 지원해요.

SDK 크기 이름 CPU 메모리 메모리(MiB)
micro 1 2 GiB 2048
small 2 4 GiB 4096
medium 4 8 GiB 8192
large 8 16 GiB 16384
xl 16 32 GiB 32768

resources를 생략하면 키트 실행 헬퍼는 기본적으로 small을 사용해요. 다른 크기를 선택하려면 그 이름을 전달해요.

const sandbox = await client.kits.launchAndWait('shell', {
  resources: 'medium',
});

레지스트리 이미지의 경우 client.create()에 resources: 'small'처럼 크기를 지정해요. 명시적 CPU·메모리 쌍 resources: { cpus: 2, memoryMib: 4096 }을 전달할 수도 있어요. 이름 있는 크기는 SDK의 편의 기능이에요. 직접 REST 요청에서는 resources.cpus와 resources.memoryMib를 모두 제공해야 해요.

CPU와 메모리는 독립적인 설정이 아니에요. 예를 들어 CPU 1개에 1024 MiB는 지원되지 않는 쌍이에요. 기존 이미지 리소스에서 image로 만들 때는 이미지가 리소스를 제공하므로 리소스 설정을 생략해요. 요청이 수용되는지 여부는 계정 접근 권한과 사용 가능한 용량이 결정해요. 가격과 사용량 정보는 "Billing"을 참고해요.

계정 할당량 (Account quotas)

기본 할당량은 계정 전체에 적용돼요.

리소스 기본 제한
동시 샌드박스 10
저장된 샌드박스 50
볼륨 100
시크릿 100
동시에 준비 중인 이미지 3

계정별로 다른 할당량을 가질 수 있어요. 특정 허용량에 의존하는 워크로드를 계획하기 전에 Docker로 계정의 한도를 확인해요. 샌드박스를 중지하면, 그 샌드박스가 always-on으로 구성되지 않은 한 동시성 슬롯이 해제돼요. 중지된 샌드박스를 재시작하려면 동시성 슬롯이 필요해요. 중지된 샌드박스는 여전히 저장된 샌드박스 할당량에 포함돼요. 더 이상 필요 없는 샌드박스는 삭제해서 저장 사용량을 줄여요.

리소스를 만들기 전에 사용량을 확인했더라도 할당량 오류를 처리하세요. 요청 사이에 다른 애플리케이션이 남은 허용량을 소비할 수 있어요. 재시도하기 전에 동시성을 줄이거나 사용하지 않는 리소스를 제거해요.

요청 속도 제한 (Request rate limits)

속도 제한은 요청을 보낼 수 있는 속도를 통제하며 작업별로 다를 수 있어요. 요청이 속도 제한에 도달하면 재시도 전에 기다리고, 서버가 지정한 지연을 준수해요. 동시 요청을 제한하고 재시도 횟수와 경과 시간에 상한을 설정해요. 오류 세부 정보를 확인해 속도 제한과 리소스 할당량을 구분해요. 기다리면 속도 제한은 해결될 수 있지만, 할당량을 초과하면 리소스 사용을 줄여야 해요. 중복 작업 없이 재시도하는 방법은 "Errors and retries"를 참고해요.

더 알아보기 (Learn more)