Snowpark Container Services: 컴퓨팅 풀 작업하기¶
컴퓨팅 풀은 Snowflake가 Snowpark Container Services 서비스(작업 서비스 포함)를 실행하는 하나 이상의 가상 머신(VM) 노드 모음입니다. CREATE COMPUTE POOL 명령을 사용하여 컴퓨팅 풀을 생성합니다. 그런 다음 서비스를 생성 하거나 서비스 작업을 실행 할 때 이를 지정합니다.
컴퓨팅 풀 만들기¶
컴퓨팅 풀은 Snowflake 가상 웨어하우스와 유사한 계정 수준 구조입니다. 컴퓨팅 풀의 명명 범위는 계정입니다. 즉, 계정에 이름이 같은 컴퓨팅 풀이 여러 개 있을 수 없습니다.
컴퓨팅 풀을 생성하는 데 필요한 최소 정보는 다음과 같습니다.
컴퓨팅 풀 노드에 프로비저닝할 머신 유형(인스턴스 패밀리 라고 함)
컴퓨팅 풀을 시작하기 위한 최소 노드 수
컴퓨팅 풀이 확장할 수 있는 최대 노드 수(Snowflake가 확장을 관리합니다.)
컴퓨팅 풀 내에서 실행하려는 서비스에 상당한 로드가 발생하거나 갑자기 활동이 급증할 것으로 예상되는 경우 최소 노드 수를 1보다 크게 설정할 수 있습니다. 이 접근 방식을 사용하면 자동 크기 조정이 시작될 때까지 기다리지 않고 필요할 때 추가 노드를 바로 사용할 수 있습니다.
최대 노드 제한을 설정하면 Snowflake 자동 크기 조정으로 인해 예기치 않게 많은 수의 노드가 컴퓨팅 풀에 추가되는 것을 방지할 수 있습니다. 이는 Snowflake가 원래 계획했던 것보다 더 많은 수의 컴퓨팅 풀 노드를 할당하게 만들 수 있는 코드 문제 또는 예기치 않은 로드 급증과 같은 상황이 발생할 때 매우 중요할 수 있습니다.
Snowsight 또는 SQL을 사용하여 컴퓨팅 풀을 생성하는 방법:
- Snowsight:
탐색 메뉴에서 Compute » Compute Pools 를 선택합니다.
탐색 모음 하단에서 사용자 이름을 선택하고 ACCOUNTADMIN 역할 또는 컴퓨팅 풀을 만들 수 있는 모든 역할로 전환합니다.
+ Compute Pool 을 선택합니다.
New compute pool UI 에서 요구 사항 정보(컴퓨팅 풀 이름, 인스턴스 패밀리, 노드 제한)를 지정합니다.
Create Compute Pool 을 선택합니다.
- SQL:
CREATE COMPUTE POOL 명령을 실행합니다.
예를 들어 다음 명령은 하나의 노드 컴퓨팅 풀을 생성합니다.
CREATE COMPUTE POOL tutorial_compute_pool MIN_NODES = 1 MAX_NODES = 1 INSTANCE_FAMILY = CPU_X64_XS;
인스턴스 제품군은 컴퓨팅 풀의 컴퓨터 노드에 프로비저닝할 머신의 유형을 식별합니다. 컴퓨팅 풀 생성 시 인스턴스 패밀리를 지정하는 것은 웨어하우스 생성 시 웨어하우스 크기(XSMALL, SMALL, MEDIUM, LARGE 등)를 지정하는 것과 유사합니다. 다음 테이블에는 사용 가능한 컴퓨터 유형이 나열되어 있습니다. SHOW COMPUTE POOL INSTANCE FAMILIES 명령을 사용하여 이 사용 가능한 인스턴스 제품군 목록을 표시할 수도 있습니다.
Available instance families (machine types) for compute pool nodes¶
INSTANCE_FAMILY, Snowflake Service Consumption Table 참조
vCPU
메모리(GiB)
저장소(GB)
대역폭 제한(Gbps)
GPU
GPU당 GPU 메모리(GiB)
노드 제한
설명
CPU_X64_XS
1
6
100
최대 12.5
해당 없음
해당 없음
150
Snowpark Container에 사용할 수 있는 가장 작은 인스턴스입니다. 비용 절감 및 시작하기에 이상적입니다.
CPU_X64_S
3
13
100
최대 12.5
해당 없음
해당 없음
150
비용을 절감하면서 여러 서비스/작업을 호스팅하는 데 이상적입니다.
CPU_X64_M
6
28
100
최대 12.5
해당 없음
해당 없음
150
풀 스택 애플리케이션 또는 여러 서비스를 보유하는 데 이상적임
CPU_X64_SL (except China)
14
54
100
최대 12.5
해당 없음
해당 없음
150
많은 수의 CPUs, 메모리, 저장소가 필요한 애플리케이션의 경우.
CPU_X64_L
28
116
100
12.5
해당 없음
해당 없음
150
비정상적으로 많은 수의 CPU, 메모리, 저장소가 필요한 애플리케이션의 경우.
HIGHMEM_X64_S
6
58
100
AWS 및 GCP: 최대 12.5, Azure: 8
해당 없음
해당 없음
150
메모리 집약적인 애플리케이션의 경우.
HIGHMEM_X64_M
28
AWS: 240, Azure 및 GCP: 244
100
AWS: 12.5, Azure 및 GCP: 16
해당 없음
해당 없음
150
단일 컴퓨터에서 여러 메모리 집약적 애플리케이션을 호스팅하는 경우.
HIGHMEM_X64_SL (Azure and GCP, except GCP Dammam region)
92
654
100
32
해당 없음
해당 없음
20
대용량 인메모리 데이터 처리에 사용할 수 있는 최대 규모의 Azure 또는 GCP 상위 메모리 컴퓨터입니다.
HIGHMEM_X64_L (AWS only)
124
984
100
50
해당 없음
해당 없음
150
대용량 인메모리 데이터 처리에 사용할 수 있는 최대 규모의 AWS 상위 메모리 컴퓨터입니다.
GPU_NV_S (AWS only, except Singapore, Switzerland North, Paris, and Osaka regions)
6
27
300(NVMe)
최대 10
1 NVIDIA A10G
24
150
시작하기 위해 Snowpark Container에 사용할 수 있는 가장 작은 NVIDIA GPU 크기입니다.
GPU_NV_M (AWS only, except gov regions, Singapore, Switzerland North, Paris, and Osaka regions)
44
178
3.4 TB (NVMe)
40
4 NVIDIA A10G
24
10
Computer Vision 또는 LLM/VLM과 같은 집약적인 GPU 사용 시나리오에 최적화되었습니다.
GPU_NV_L (AWS only, available only in AWS US West and US East non-gov regions by request; limited availability might be possible in other regions upon request)
92
1112
6.8 TB (NVMe)
400
8 NVIDIA A100
40
요청 시
LLMs 및 클러스터링 등과 같은 특수하고 고급 GPU 사례를 위한 가장 큰 GPU 인스턴스입니다.
GPU_NV_XS(Azure 전용, 스위스 북부, UAE 북부, US 중부 및 UK 남부 리전 제외)
3
26
100
8
1 NVIDIA T4
16
10
시작하기 위해 Snowpark Container에 사용할 수 있는 가장 작은 Azure NVIDIA GPU 크기입니다.
GPU_NV_SM(Azure 전용, US 중부 리전 제외)
32
424
100
40
1 NVIDIA A10
24
10
시작하기 위해 Snowpark Container에 사용할 수 있는 더 작은 Azure NVIDIA GPU 크기입니다.
GPU_NV_2M(Azure 전용, US 중부 리전 제외)
68
858
100
80
2 NVIDIA A10
24
5
Computer Vision 또는 LLM/VLM과 같은 집약적인 GPU 사용 시나리오에 최적화되었습니다.
GPU_NV_3M(Azure 전용, US 중부, 북유럽 및 UAE 북부 리전 제외)
44
424
100
40
2 NVIDIA A100
80
요청 시
Computer Vision 또는 LLM/VLM과 같은 메모리 집약적인 GPU 사용 시나리오에 최적화되었습니다.
GPU_NV_SL(Azure 전용, US 중부, 북유럽 및 UAE 북부 리전 제외)
92
858
100
80
4 NVIDIA A100
80
요청 시
LLMs 및 클러스터링 등과 같은 특수하고 고급 GPU 사례를 위한 가장 큰 GPU 인스턴스입니다.
GPU_GCP_NV_L4_1_24G(Google Cloud 전용)
6
28
300
최대 16
1 NVIDIA L4
24
10
시작하기 위해 Snowpark Container에 사용할 수 있는 가장 작은 NVIDIA GPU 크기입니다.
GPU_GCP_NV_L4_4_24G(Google Cloud 전용)
44
178
1200
최대 50
4 NVIDIA L4
24
10
컴퓨터 비전 또는 LLM과 같은 GPU 사용 시나리오.
GPU_GCP_NV_A100_8_40G(Google Cloud 전용, 요청에 따라 GCP US 중부1 및 유럽 서부4 리전에서만 사용 가능)
92
654
2500
최대 100
8 NVIDIA A100
40
요청 시
Computer Vision 또는 LLM/VLM과 같은 메모리 집약적인 GPU 사용 시나리오에 최적화되었습니다.
사용 가능한 인스턴스 패밀리에 대한 자세한 내용은 CREATE COMPUTE POOL 을 참조하십시오.
컴퓨팅 풀 노드 자동 크기 조정¶
컴퓨팅 풀을 생성하면 Snowflake가 최소 개수의 노드를 시작하고 허용되는 최대 개수까지 추가 노드를 자동으로 생성합니다. 이를 자동 크기 조정 이라고 합니다. 실행 중인 노드가 추가 워크로드를 감당할 수 없을 때 새 노드가 할당됩니다. 예를 들어 컴퓨팅 풀 내의 두 노드에서 두 서비스 인스턴스가 실행 중이라고 가정합니다. 동일한 컴퓨팅 풀 내에서 다른 서비스를 실행하는 경우 추가 리소스 요구 사항으로 인해 Snowflake가 추가 노드를 시작할 수 있습니다.
그러나 특정 기간 동안 노드에서 서비스가 실행되지 않으면 Snowflake는 자동으로 노드를 제거하여 제거 후에도 컴퓨팅 풀이 필요한 최소 노드 수를 유지하도록 보장합니다.
컴퓨팅 풀 관리하기¶
Snowsight 또는 SQL 을 사용하여 컴퓨팅 풀을 관리할 수 있습니다.
Snowsight 에서 컴퓨팅 풀 이름 옆의 더 보기 옵션(…)을 선택하고 메뉴에서 원하는 작업을 선택합니다. 이 섹션에서는 컴퓨팅 풀을 관리하는 데 사용할 수 있는 SQL 명령을 설명합니다.
Snowpark Container Services는 컴퓨팅 풀을 관리하는 다음 명령을 제공합니다.
모니터링: 컴퓨팅 풀에 대한 정보를 얻으려면 SHOW COMPUTE POOLS 명령을 사용하십시오.
작동: 컴퓨팅 풀의 상태를 변경하려면 ALTER COMPUTE POOL 명령을 사용하십시오.
ALTER COMPUTE POOL <name> { SUSPEND | RESUME | STOP ALL }
컴퓨팅 풀을 일시 중단하면 Snowflake는 작업 서비스를 제외한 모든 서비스를 일시 중단합니다. 작업 서비스는 종료 상태(DONE 또는 FAILED)에 도달할 때까지 계속 실행되며, 그 이후에는 컴퓨팅 풀 노드가 해제됩니다.
새로운 서비스를 시작하려면 먼저 일시 중단된 컴퓨팅 풀을 재개해야 합니다. (AUTO_RESUME 속성을 TRUE로 설정하여) 컴퓨팅 풀이 자동 재개되도록 구성한 경우 Snowflake는 서비스가 풀에 제출될 때 자동으로 풀을 재개합니다. 그렇지 않으면 ALTER COMPUTE POOL 명령을 실행하여 컴퓨팅 풀을 수동으로 재개해야 합니다.
수정: 컴퓨팅 풀 속성을 변경하려면 ALTER COMPUTE POOL 명령을 사용하십시오.
ALTER COMPUTE POOL <name> SET propertiesToAlter = <value> propertiesToAlter := { MIN_NODES | MAX_NODES | AUTO_RESUME | AUTO_SUSPEND_SECS | COMMENT }
MAX_NODES를 줄일 때 다음과 같은 잠재적 효과에 유의하십시오.
Snowflake는 하나 이상의 서비스 인스턴스를 종료하고 컴퓨팅 풀에서 사용 가능한 다른 노드에서 해당 인스턴스를 다시 시작해야 할 수도 있습니다. MAX_NODES가 너무 낮게 설정되면 Snowflake가 특정 서비스 인스턴스를 예약하지 못할 수 있습니다.
종료된 노드에 진행 중인 작업 서비스 실행이 있는 경우 작업 실행이 실패합니다. Snowflake는 작업 서비스를 다시 시작하지 않습니다.
예:
ALTER COMPUTE POOL my_pool SET MIN_NODES = 2 MAX_NODES = 2;
제거: 컴퓨팅 풀을 제거하려면 DROP COMPUTE POOL 명령을 사용하십시오.
예:
DROP COMPUTE POOL <name>
컴퓨팅 풀을 삭제하려면 먼저 실행 중인 모든 서비스를 중지해야 합니다.
컴퓨팅 풀 나열 및 속성 보기: SHOW COMPUTE POOLS 및 DESCRIBE COMPUTE POOL 명령을 사용합니다. 예를 보려면 컴퓨팅 풀 표시하기 를 참조하십시오.
컴퓨팅 풀 수명 주기¶
컴퓨팅 풀은 다음 상태 중 하나일 수 있습니다.
IDLE: 컴퓨팅 풀에 원하는 수의 가상 컴퓨터(VM) 노드가 있지만 예약된 서비스가 없습니다. 이 상태에서는 활동 부족으로 인해 자동 크기 조정이 컴퓨팅 풀을 최소 크기로 축소할 수 있습니다.
ACTIVE: 컴퓨팅 풀에 실행 중이거나 실행 예정인 서비스가 하나 이상 있습니다. 풀은 로드 또는 사용자 작업에 대한 응답으로 크기가 (최대 노드 수까지) 증가하거나 (최소 노드 수까지) 감소할 수 있습니다.
SUSPENDED: 풀에는 현재 실행 중인 가상 머신 노드가 없지만 AUTO_RESUME 컴퓨팅 풀 속성이 TRUE로 설정된 경우 서비스가 예약될 때 풀이 자동으로 재개됩니다.
다음 상태는 일시적입니다.
STARTING: 컴퓨팅 풀을 생성하거나 재개하면 컴퓨팅 풀이 하나 이상의 노드가 프로비저닝될 때까지 STARTING 상태로 전환됩니다.
STOPPING: (ALTER COMPUTE POOL을 사용하여) 컴퓨팅 풀을 일시 중단하면 Snowflake가 컴퓨팅 풀의 모든 노드를 해제할 때까지 컴퓨팅 풀이 STOPPING 상태로 전환됩니다. 컴퓨팅 풀을 일시 중단하면 Snowflake는 작업 서비스를 제외한 모든 서비스를 일시 중단합니다. 작업 서비스는 종료 상태(DONE 또는 FAILED)에 도달할 때까지 계속 실행되며, 그 이후에는 컴퓨팅 풀 노드가 해제됩니다.
RESIZING: 컴퓨팅 풀을 생성하면 처음에는 STARTING 상태가 됩니다. 하나의 노드가 프로비저닝되면 (CREATE COMPUTE POOL에 지정된 대로) 최소 노드 수가 프로비저닝될 때까지 RESIZING 상태로 전환됩니다. (ALTER COMPUTE POOL을 사용하여) 컴퓨팅 풀을 변경하고 최소 및 최대 노드 값을 업데이트하면 풀은 최소 노드가 프로비저닝될 때까지 RESIZING 상태로 전환됩니다. 컴퓨팅 풀의 자동 크기 조정에서는 컴퓨팅 풀이 RESIZING 상태로 전환한다는 점에도 유의하십시오.
컴퓨팅 풀 수명 주기의 다양한 상태에서 발생하는 비용에 대한 자세한 내용은 컴퓨팅 풀 비용 섹션을 참조하세요.
컴퓨팅 풀 권한¶
컴퓨팅 풀로 작업할 때 다음 권한 모델이 적용됩니다.
계정에 컴퓨팅 풀을 생성하려면 현재 역할에 해당 계정에 대한 CREATE COMPUTE POOL 권한이 필요합니다. 풀을 생성하는 경우 소유자는 해당 컴퓨팅 풀에 대한 모든 권한을 부여하는 OWNERSHIP 권한을 갖게 됩니다. 한 컴퓨팅 풀의 OWNERSHIP을 가지고 있다고 해서 다른 컴퓨팅 풀에 대한 권한이 있는 것은 아닙니다.
컴퓨팅 풀 관리를 위해 다음과 같은 권한(기능)이 지원됩니다.
권한
사용법
MODIFY
크기 변경을 포함하여 모든 컴퓨팅 풀 속성을 변경할 수 있습니다.
MONITOR
컴퓨팅 풀 속성 설명을 포함하여 컴퓨팅 풀 사용량을 볼 수 있습니다.
OPERATE
컴퓨팅 풀의 상태 변경(일시 중단, 재개)을 활성화합니다. 또한 예약된 모든 서비스(작업 서비스 포함)를 중지할 수 있습니다.
USAGE
컴퓨팅 풀에서 서비스 생성을 활성화합니다. 컴퓨팅 풀이 일시 중단된 상태이고 해당 AUTO_RESUME 속성이 true로 설정된 경우 컴퓨팅 풀에 대한 USAGE 권한이 있는 역할은 서비스를 시작하거나 재개할 때 역할에 OPERATE 권한이 없더라도 암시적으로 컴퓨팅 풀의 재개를 트리거할 수 있습니다.
OWNERSHIP
컴퓨팅 풀에 대한 모든 권한을 부여합니다. 특정 오브젝트에 대해 한 번에 단 하나의 역할만 이 권한을 보유할 수 있습니다.
ALL [ PRIVILEGES ]
OWNERSHIP을 제외하고 컴퓨팅 풀에 대한 모든 권한을 부여합니다.
컴퓨팅 풀 유지 관리¶
Snowflake는 정기적인 내부 인프라 유지 관리의 일환으로 컴퓨팅 풀 노드를 정기적으로 업데이트하여 최적의 성능과 보안을 보장합니다. 여기에는 운영 체제 업그레이드, 드라이버 개선, 보안 수정이 포함됩니다. 유지 관리에는 몇 주마다 오래된 노드를 업데이트된 노드로 교체하는 작업이 포함되며, 각 노드는 최대 한 달 동안 활성화됩니다.
유지 관리 윈도우¶
예약된 점검은 매주 토요일 8시(PM)부터 일요일 8시(AM)까지, 매주 일요일 오후 8시(PM)부터 월요일 오전 8시(AM)까지 진행됩니다. :ref:`조기 액세스 계정<label-releases_early_access_to_full_releases>`의 경우 유지 관리는 매일 11(PM)시에 시작되며 최대 6시간 동안 지속될 수 있습니다.
서비스 중단¶
유지 관리 중에 Snowflake는 이전 컴퓨팅 풀 노드에서 실행 중인 서비스 인스턴스를 새 노드에 자동으로 다시 생성합니다. Snowflake는 롤링 방식을 사용하여 서비스 인스턴스를 다시 생성합니다.
서비스에 인스턴스가 하나만 있는 경우, Snowflake가 인스턴스를 다시 생성하는 동안 서비스 중단이 발생합니다.
여러 인스턴스가 있는 서비스의 경우, Snowflake는 업그레이드된 노드에서 서비스 인스턴스를 점진적으로 다시 생성합니다. 한 번에 서비스 인스턴스의 50%를 초과하여 교체하지 않습니다. 이로 인해 서비스에 대해 요청된 MIN_INSTANCES 보다 사용 가능한 인스턴스 수가 줄어들 수 있습니다. 사용 가능한 인스턴스가 MIN_READY_INSTANCES 미만으로 떨어지면 서비스가 READY 상태에서 PENDING 상태로 전환되어 서비스 중단이 발생합니다. 따라서 서비스 중단을 방지하려면 MIN_READY_INSTANCES 를 MIN_INSTANCES 의 50% 미만으로 설정하는 것이 좋습니다.
진행 중인 작업 서비스는 중단되며 유지 관리가 완료되면 고객이 다시 시작해야 합니다.
주의
유지 관리 기간 중 서비스 중단 또는 중요 업데이트는 Snowflake의 지원 정책 및 서비스 수준 계약 에 명시된 서비스 수준에 포함되지 않습니다.
가동 중지 시간을 최소화하기 위한 모범 사례¶
여러 서비스 인스턴스 실행: 여러 인스턴스를 사용하면 유지 관리 중 서비스 중단을 최소화하여 높은 가용성을 보장할 수 있습니다.
애플리케이션 상태를 영구 저장소에 저장: 데이터와 상태 저장 오브젝트를 블록 스토리지, Snowflake 스테이지 또는 Snowflake 테이블을 포함한 영구 저장소에 저장하십시오.
SIGTERM 신호 포착: 서비스 인스턴스를 종료할 때, Snowflake는 먼저 각 서비스 컨테이너에 SIGTERM 신호를 보냅니다(서비스 종료하기 참조). 신호 처리의 일부로 컨테이너 코드는 서비스 인스턴스가 종료되거나 다시 시작되기 전에 서비스 상태를 저장할 수 있습니다.
유지 관리 중에도 성능이 저하된 상태로 실행되도록 고가용성 서비스 설계: 유지 관리 중에도 가용성을 유지하려면 서비스가 인스턴스의 50%만 실행해도 견딜 수 있어야 합니다.
준비 프로브 제공: 준비 프로브를 제공하지 않으면 코드가 실행되기 시작하자마자 서비스 인스턴스가 준비된 것으로 간주합니다. 일반적으로 컨테이너가 초기화를 완료하고 요청을 처리할 준비가 되려면 어느 정도 시간이 걸립니다. 서비스 구성에 준비 프로브를 제공하여 서비스 인스턴스가 요청을 처리할 준비가 되었음을 명시적으로 Snowflake에 알려야 합니다.
유지 관리 일정 모니터링: 유지 관리 기간 중에는 중요한 작업을 예약하지 마십시오.
유지 관리 기간 중에 서비스를 실행하도록 작업 예약 방지: 유지 관리 기간 중에 실행 중인 작업이 Snowflake에 의해 취소될 수 있습니다.
정기적인 백업 또는 검사점 수행: 주기적으로 애플리케이션 상태를 영구 저장소(블록 저장소, Snowflake 스테이지 또는 Snowflake 테이블 포함)에 백업하거나 검사하십시오.
컴퓨팅 풀에서 서비스를 예약하는 방법¶
서비스 생성 시 수신 로드를 관리하기 위해 여러 인스턴스를 실행하도록 선택할 수 있습니다. Snowflake는 컴퓨팅 풀 노드에서 서비스 인스턴스를 예약할 때 다음과 같은 일반 지침을 사용합니다.
서비스 인스턴스의 모든 컨테이너는 항상 단일 컴퓨팅 풀 노드에서 실행됩니다. 즉, 서비스 인스턴스는 여러 노드에 걸쳐 있지 않습니다.
여러 서비스 인스턴스를 실행하는 경우 Snowflake는 컴퓨팅 풀 내의 동일한 노드 또는 다른 노드에서 이러한 서비스 인스턴스를 실행할 수 있습니다. 이 결정을 내릴 때 Snowflake는 서비스 사양 파일(containers.resources 필드 참조)에 설명된 대로 지정된 하드 리소스 요구 사항(예: 메모리 및 GPU)을 고려합니다.
예를 들어 컴퓨팅 풀의 각 노드가 8GB의 메모리를 제공한다고 가정합니다. 서비스 사양에 6GB 메모리 요구 사항이 포함되어 있고 서비스를 생성할 때 두 개의 인스턴스를 실행하도록 선택한 경우 Snowflake는 동일한 노드에서 두 인스턴스를 모두 실행할 수는 없습니다. 이 경우 Snowflake는 메모리 요구 사항을 충족하기 위해 컴퓨팅 풀 내의 별도 노드에 각 인스턴스를 예약합니다.
참고
Snowflake는 애플리케이션 컨테이너에서 사용할 수 있는 스테이지 마운트를 지원합니다. Snowflake 내부 스테이지는 지원되는 저장소 볼륨 유형 중 하나입니다.
최적의 성능을 위해 이제 Snowflake는 볼륨이 동일한 서비스 인스턴스, 동일한 서비스 또는 다른 서비스에 속하는지 여부에 관계없이 컴퓨팅 풀 노드당 스테이지 볼륨 마운트 총 개수를 8개로 제한합니다.
노드의 제한에 도달하면 Snowflake는 스테이지 볼륨을 사용하는 새로운 서비스 인스턴스를 시작하기 위해 해당 노드를 사용하지 않습니다. 컴퓨팅 풀의 모든 노드에서 한도에 도달하면 Snowflake가 서비스 인스턴스를 시작할 수 없습니다. 이 시나리오에서 SHOW SERVICE CONTAINERS IN SERVICE 명령을 실행하면 Snowflake는 “Unschedulable due to insufficient resources” 메시지와 함께 PENDING 상태를 반환합니다.
이 스테이지 마운트 할당 제한을 노드에 맞추기 위해 경우에 따라 컴퓨팅 풀에 요청하는 최대 노드 수를 늘릴 수 있습니다. 이 경우 Snowflake에서 서비스 인스턴스를 시작할 수 있는 추가 노드가 제공됩니다.
System compute pools¶
Snowflake automatically provisions two compute pools in each Snowflake account. These compute pools are provided exclusively for the following Snowflake workloads.
Notebooks
Model serving
ML jobs
By using system compute pools, users can run these workload without needing an account administrator to configure a compute pool first.
The system compute pools have the following default configuration:
Compute pool name: SYSTEM_COMPUTE_POOL_GPU
인스턴스 패밀리: Snowflake 계정이 AWS 또는 Microsoft Azure 리전에 있는지 여부에 따라, Snowflake는 이 컴퓨팅 풀에 다음 GPU 인스턴스 패밀리 를 사용합니다.
Azure에서는 GPU_NV_SM 입니다.
AWS 에서는 GPU_NV_S 입니다.
다음 리전은 SYSTEM_COMPUTE_POOL_GPU 를 지원하지 않습니다.
AWS: 싱가포르, 스위스 북부, 파리, 오사카.
Azure: 중부 US.
Google Cloud: GPU 컴퓨팅 풀을 사용할 수 없습니다.
기본 구성:
MIN_NODES=1
MAX_NODES=50
INITIALLY_SUSPENDED=true
AUTO_SUSPEND_SECS=600
Compute pool name: SYSTEM_COMPUTE_POOL_CPU
인스턴스 패밀리: CPU_X64_S
기본 구성:
MIN_NODES=1
MAX_NODES=150
INITIALLY_SUSPENDED=true
AUTO_SUSPEND_SECS=600
Note that,
Compute pools are initially in a suspended state and only begin incurring costs when a supported Snowflake workload starts using them.
If no workloads are running, these compute pools are automatically suspended after 10 minutes. To modify the auto-suspension policy for default compute pools, use the ALTER COMPUTE POOL SET AUTO_SUSPEND_SECS command.
Managing the system compute pools¶
In a Snowflake account, the ACCOUNTADMIN role owns these system compute pools. Administrators have full control over the compute pools, including modifying their properties, suspending operations, and monitoring consumption. The ACCOUNTADMIN role can delete the compute pool. For example:
USE ROLE ACCOUNTADMIN;
ALTER COMPUTE POOL SYSTEM_COMPUTE_POOL_CPU STOP ALL;
DROP COMPUTE POOL SYSTEM_COMPUTE_POOL_CPU;
By default, the USAGE permission on system compute pools is granted to the PUBLIC role, allowing all roles in the account to use them. However, the ACCOUNTADMIN can modify these privileges to restrict access if necessary.
To restrict access to system compute pools to specific roles in your account, use the ACCOUNTADMIN role to revoke the USAGE permission from the PUBLIC role and grant it to the desired role(s). For example:
USE ROLE ACCOUNTADMIN; REVOKE USAGE ON COMPUTE POOL SYSTEM_COMPUTE_POOL_CPU FROM ROLE PUBLIC; GRANT USAGE ON COMPUTE POOL SYSTEM_COMPUTE_POOL_CPU TO ROLE <role-name>;
System compute pools can be associated with budgets. for cost management.
Notebooks에 대해 선호하는 컴퓨팅 풀 구성하기¶
By default, Notebook services run in system compute pools. If you don’t want to use the Snowflake-provisioned compute pools, you have the option to choose other compute pools in your account for Notebooks. To override the Snowflake-provisioned compute pools you can set these parameters (DEFAULT_NOTEBOOK_COMPUTE_POOL_CPU and DEFAULT_NOTEBOOK_COMPUTE_POOL_GPU). Note that, this will change your Snowsight experience. When creating a Notebook in Snowsight, the compute pool you configure using these parameters appears as the first preference in the UI. The following example commands set these parameters:
GPU 런타임을 사용하여
my_pool을 Notebooks에 기본 설정된 계정 수준 컴퓨팅 풀로 구성합니다.ALTER ACCOUNT SET DEFAULT_NOTEBOOK_COMPUTE_POOL_GPU='my_pool';
데이터베이스
my_db에서 생성된 Notebooks에 대해 기본 설정된 컴퓨팅 풀로my_pool을 구성합니다.ALTER DATABASE my_db SET DEFAULT_NOTEBOOK_COMPUTE_POOL_GPU='my_pool';
스키마
my_db.my_schema에서 생성된 Notebooks에 대해 기본 설정된 컴퓨팅 풀로my_pool을 구성합니다.ALTER SCHEMA my_db.my_schema SET DEFAULT_NOTEBOOK_COMPUTE_POOL_GPU='my_pool';
다음 명령을 사용해 계정에 Notebooks를 실행하도록 구성된 현재 GPU 컴퓨팅 풀 기본 설정을 확인하십시오.
SHOW PARAMETERS LIKE 'DEFAULT_NOTEBOOK_COMPUTE_POOL_GPU' IN ACCOUNT;
SHOW PARAMETERS LIKE 'DEFAULT_NOTEBOOK_COMPUTE_POOL_GPU' IN DATABASE my_db;
SHOW PARAMETERS LIKE 'DEFAULT_NOTEBOOK_COMPUTE_POOL_GPU' IN SCHEMA my_db.my_schema;
자세한 내용은 SHOW PARAMETERS 섹션을 참조하십시오.
지침 및 제한 사항¶
CREATE COMPUTE POOL 권한: 현재 역할로 컴퓨팅 풀을 만들 수 없는 경우 계정 관리자에게 문의하여 권한을 부여 받아야 합니다. 예:
GRANT CREATE COMPUTE POOL ON ACCOUNT TO ROLE <role_name> [WITH GRANT OPTION];
자세한 내용은 GRANT <privileges> … TO ROLE 섹션을 참조하십시오.
컴퓨팅 풀 노드에 대한 계정당 제한.
계정에서 만들 수 있는 최대 노드 수(컴퓨팅 풀의 수와 무관)는 500개입니다.
컴퓨팅 풀당 최대 노드 수는 50개입니다.
또한 각 인스턴스 패밀리별로 허용되는 노드 수에 제한이 있습니다(인스턴스 패밀리 테이블 의 노드 제한 열 참조).
Requested number of nodes <#> exceeds the node limit for the account같은 오류 메시지가 표시되면 이러한 한도에 도달한 것입니다. 자세한 내용은 계정 담당자에게 문의하십시오.