엔진별 빌드 프로필과 실행 설정
오른쪽 위 Deploy 옆의 설정 아이콘에서 Build settings를 엽니다. 배치, Faster와 스트리밍은 사용하는 엔진과 자원 구성이 다르므로 같은 Small 또는 Large 이름만으로 크기를 비교하지 않습니다.
Standard 배치 프로필
Standard 배치는 Spark를 사용합니다. Extra Small, Small과 Medium은 프로젝트로 자동 가져오며, Large와 Extra Large는 해당 프로젝트의 Editor 또는 Owner 권한과 Resource Management 관리자 권한을 함께 가진 사용자가 가져와야 합니다. 큰 사용자 지정 프로필에도 같은 조건이 적용됩니다.
이미 큰 프로필을 사용하던 프로젝트의 기존 프로필은 유지됩니다. 새 프로필을 가져오지 않은 상태에서 선택하면 배포 오류가 발생하며, 필요한 권한이 없으면 선택 항목도 비활성화됩니다. 자세한 절차는 컴퓨팅 프로필 권한을 따릅니다. 이 권한 조건은 Streaming과 Faster에는 적용하지 않습니다.
기본 프로필 사양
| 프로필 | 드라이버 코어 | 드라이버 메모리 | 최소 실행기 | 최대 실행기 | 실행기 코어 | 실행기 메모리 | 최대 총 코어 |
|---|---|---|---|---|---|---|---|
| Extra Small | 1 | 4GB | N/A | N/A | N/A | N/A | 1 |
| Small | 1 | 2GB | 1 | 2 | 1 | 3GB | 3 |
| Medium | 1 | 6GB | 2 | 16 | 2 | 6GB | 33 |
| Large | 1 | 13GB | 2 | 32 | 2 | 6GB | 65 |
| Extra Large | 1 | 27GB | 2 | 128 | 2 | 6GB | 257 |
선택한 프로필 아래의 Specifications에서도 사양을 볼 수 있습니다.
Warm pool 사양
| 프로필 | 드라이버 코어 | 드라이버 메모리 | 최소 실행기 | 최대 실행기 | 실행기 코어 | 실행기 메모리 | 최대 총 코어 |
|---|---|---|---|---|---|---|---|
| Warm Pool Extra Small | 3 | 13GB | N/A | N/A | N/A | N/A | 3 |
| Warm Pool Small | 3 | 7GB | 1 | 6 | 1 | 3GB | 9 |
Warm pool은 계속 켜져 있는 가상 머신을 공유합니다. 실제 job은 표의 가상 머신 자원 중 일부만 사용하므로 표시된 총 사양보다 실제 사용량이 훨씬 작을 수 있습니다.
네이티브 가속 사양
네이티브 계산에 필요한 off-heap 메모리를 따로 확보합니다.
| 프로필 | 드라이버 코어 | 드라이버 메모리 | 최소 실행기 | 최대 실행기 | 실행기 코어 | 실행기 메모리 | 실행기 off-heap | 최대 총 코어 |
|---|---|---|---|---|---|---|---|---|
| Natively Accelerated Small | 1 | 2GB | 1 | 2 | 1 | 600MB | 2400MB | 3 |
| Natively Accelerated Medium | 1 | 6GB | 2 | 16 | 2 | 1200MB | 4800MB | 33 |
| Natively Accelerated Large | 1 | 13GB | 2 | 32 | 2 | 1200MB | 4800MB | 65 |
| Natively Accelerated Extra Large | 1 | 27GB | 2 | 128 | 2 | 1200MB | 4800MB | 257 |
Faster 배치 프로필
Faster 프로필은 Faster 배치에서만 선택합니다.
| 프로필 크기 | 코어 | 메모리 |
|---|---|---|
| Small | 1 | 7.5GB |
| Medium | 2 | 15GB |
| Large | 4 | 30GB |
| Extra Large | 8 | 60GB |
| Extra Extra Large | 16 | 120GB |
관리형 프로필
Standard 프로필에서 Profile management strategy > Managed profile을 선택하면 실제 사용량에 맞춰 자원 할당을 낮출 수 있습니다.
같은 배포의 최근 다섯 빌드를 분석하여 할당량보다 적은 자원을 일관되게 사용하면 이후 빌드의 자원을 줄입니다. 처음 선택한 할당량보다 늘리지는 않습니다. 조정 결과는 정해진 프로필 크기 중 하나에 한정되지 않고 실제 사용 패턴에 맞춘 사용자 지정 수준일 수 있습니다.
Warm pool 사용 조건
Warm pool은 자동 확장되는 상시 실행 가상 머신 풀로 job 시작 지연을 줄입니다. 가상 머신 하나에 최대 세 job이 동시에 실행되며 각 job이 자원을 나눠 씁니다. Extra Small에서 최대 약 30분 걸리는 정도의 작은 빌드에 권장됩니다.
- Spark의 Extra Small과 Small만 지원합니다. Medium 이상은 지원하지 않습니다.
- UDF가 있는 파이프라인에는 사용할 수 없습니다.
- 로그가 줄어들거나 불완전하게 보일 수 있습니다. 실패 원인을 위한 전체 로그가 필요하면 warm pool을 끄고 job을 다시 실행합니다.
프로필 창에서 Warm pool을 켭니다.
네이티브 가속과 메모리
배치 파이프라인의 일부 데이터 연산을 Velox로 실행하여 성능을 높일 수 있습니다. 네이티브 가속은 JVM 밖의 off-heap 데이터에 접근하며 local mode를 지원하지 않습니다.
처음 적용할 때는 기본 프로필과 총 메모리 규모를 맞춘 사전 구성 프로필을 선택하는 것이 권장됩니다.
고급 프로필에서는 on-heap과 off-heap 비율을 비롯한 자원 설정을 직접 지정할 수 있습니다.
일반 Foundry Spark 배치는 추가 유지 관리 부담 때문에 기본적으로 off-heap을 켜지 않습니다. Velox가 다루는 DataFrame은 네이티브 프로세스에서 접근할 수 있도록 off-heap이어야 합니다. 반면 조정, 스케줄링과 빌드 관리 등 JVM에서 실행하는 부분에는 충분한 on-heap이 여전히 필요합니다.
기본 실행에서는 없던 OOM이나 성능 저하가 네이티브 가속 후 생기면 메모리 비율을 확인합니다. 고급 설정에서 off-heap 비중을 줄이는 방법을 검토할 수 있습니다. 조정해도 문제가 계속되면 해당 워크로드에는 기본 프로필을 사용합니다.
LLM, embedding 생성과 텍스트 청킹처럼 네이티브 off-heap으로 넘길 수 없는 연산이 있는 파이프라인은 Standard 비네이티브 프로필을 사용합니다. 네이티브 프로필의 줄어든 on-heap 때문에 큰 프로필에서도 shuffle 중 실행기 OOM이 생길 수 있습니다.
스트리밍 프로필
| 프로필 | Job Manager 메모리 | 병렬도 | Task Manager 메모리 |
|---|---|---|---|
| Extra Extra Small | 1GB | 1 | 1GB |
| Extra Small | 1GB | 1 | 1GB |
| Small | 1GB | 2 | 4GB |
| Medium | 1GB | 3 | 6GB |
| Large | 2GB | 4 | 8GB |
| XLarge | 2GB | 8 | 12GB |
최대 실행 기간
Set max job duration은 스트리밍 job의 최대 실행 기간을 1분부터 7일까지 설정합니다. 기간에 도달하면 job이 자동으로 멈춥니다. main이 아닌 브랜치는 기본적으로 이 옵션이 켜져 있으며 최대 기간이 1일입니다.
Deploy 옆 설정에서 스트리밍 옵션의 Set max job duration을 찾아 기간을 지정합니다.
Stream behavior
Flink 파이프라인의 Stream behavior에서는 메시지 전달 일관성 보장을 선택합니다. 전용 선택기에서 At Least Once 같은 보장을 지정하면 배포 패널의 미리보기 행에 표시됩니다. 설정하지 않으면 배포 패널에 경고가 나타납니다.
외부 실행 엔진
외부 파이프라인은 Databricks나 Snowflake로 계산을 내려보냅니다. Foundry Spark 또는 Flink 프로필과 달리 해당 외부 엔진의 실행 자원을 구성해야 합니다. 외부 파이프라인 생성과 빌드 설정에서 엔진별 연결과 설정을 적용합니다.