Atlas Stream Processing 계층에 따라 스트림 프로세서당 리소스를 할당합니다. 고정된 리소스 할당 및 비용 예측 가능성을 제공하여 시스템 설계 프로세스 간소화합니다. 이 가이드 사용하여 배포서버 계획할 때 스트림 처리 워크로드에 가장 적합한 계층을 파악하세요.
리소스 할당
각 계층 처리 능력, 메모리, 대역폭, 병렬 처리 및 Apache Kafka 소스가 있는 프로세서의 경우 파티션에 대한 고정 할당을 제공합니다.
계층 | vCPU | RAM (GB) | 대역폭(Mbps) | 최대 병렬도 | 소스 Kafka 파티션 제한 |
|---|---|---|---|---|---|
SP2 | 0.25 | 0.5 | 50 | 1 | 32 |
SP5 | 0.5 | 1 | 125 | 2 | 64 |
SP10 | 1 | 2 | 200 | 8 | 무제한 |
SP30 | 2 | 8 | 750 | 16 | 무제한 |
SP50 | 8 | 32 | 2500 | 64 | 무제한 |
워크로드 선택
각 계층 의 리소스 할당이 다르기 때문에 프로젝트 의 다양한 단계와 규모에 적합합니다.
계층 | 사용 사례 |
|---|---|
SP2 | 개발, 평가판 배포 리소스 요구 사항이 제한적인 간단한 워크로드를 지원할 수 있는 가장 저렴한 옵션입니다. |
SP5 | 개발, 기본 프로덕션 배포 더 복잡한 계산을 사용하는 작업에도 처리량 낮은 프로덕션 작업에 적합한 저비용 옵션입니다. SP5 프로세서는 기본 필터링, 프로젝션 및 변경 스트림 처리 지원 수 있습니다. |
SP10 | 메인스트림 프로덕션 배포 프로덕션 워크로드의 기준입니다. SP10 이상은 높은 수준의 병렬 처리, 무제한 Kafka 분할 또는 조회 및 조인과 같은 데이터 보강 작업이 필요한 파이프라인에 적합합니다. |
SP30 | 복잡한 프로덕션 배포 메모리 집약적인 stateul 작업을 위해 설계된 고성능 옵션입니다. SP30 는 장기간 창, 다중 조회 및 대규모 데이터 보강을 위해 대용량 RAM 버퍼가 필요한 확장하다 를 사용하는 파이프라인을 지원합니다. |
SP50 | 엔터프라이즈 규모 프로덕션 처리량이 많은 스트림과 광범위한 변환 로직을 위해 설계된 최고 성능 옵션입니다. SP50 프로세서는 대규모 병렬 처리 또는 컴퓨팅 집약적인 워크플로가 필요한 작업에 적합합니다. |
고려 사항
적절한 계층 선택할 때 다음 요소를 고려하세요.
초기화 급증
스트림 프로세서는 일반 작업보다 초기 실행 중에 더 많은 리소스가 필요할 수 있습니다. 예시 를 들어 프로세서가 대규모 Atlas 컬렉션 대해 $initialSync 를 수행하는 경우 해당 프로세서는 동기화 기간 동안 많은 I/O 및 계산을 지원 해야 합니다.
이러한 증가된 수요를 흡수하려면 일시적으로 상위 계층 선택하고 동기화가 완료되고 프로세서가 새로운 변경 스트림 이벤트만 사용하도록 전환되면 프로세서를 축소 확장하다 .
파이프라인 로직
집계 파이프라인 로직은 CPU 및 RAM 소비의 프라이머리 운전자 입니다.
- Windows: 오래 지속되는 창은 이동 중에 보관하기 위해 더 많은 RAM 사용합니다.
- 문서.
- 사용자 지정 로직: Javascript
$function단계 또는 복잡한 그룹화 - 로직은 각 메시지의 계산 요구 사항을 증가시킵니다.
- 사용자 지정 로직: Javascript
- 복합 복잡성: 상태 저장 또는 계산적으로 복잡한 추가 단계
- 리소스 수요에 더 많은 잠재적 변동이 발생합니다. 잉여 용량 유지하면 사용량이 급증하는 동안에도 일관적인 처리량 보장됩니다.
인프라
각 네트워크 또는 저장 문의 점 스트림 프로세서의 오버헤드 증가시킵니다.
- 소스 또는 싱크 밀도: 병렬화된 읽기 또는 쓰기
- 소스 또는 싱크(예: 파티션이 있는 Apache Kafka 주제)는 I/O 요구 사항을 증가시킵니다.
- 데이터 강화:
$lookup및$https단계, 및 작업 - 스트림 의 데이터를 보강하기 위해 Atlas 컬렉션을 사용하려면 네트워크 대역폭과 연결 풀링 필요합니다.
- 데이터 강화:
- 조정: 많은 소스를 조정하는 복잡한 배포에서
- 스트림 프로세서는 이러한 각 노드 간에 데이터 흐름을 라우팅하는 허브 제공 을 할 수 있습니다. 이러한 프로세서는 SP30 SP50 계층의 처리량이 더 높은 처리량 누릴 수 있습니다.
반대로 처리량이 많은 스트림 처리 워크로드는 연결된 리소스에 대한 수요를 증가시킬 수 있습니다.
- Atlas 에 미치는 영향 : 스트림 의 대용량 병렬 I/O
프로세서는 소스 또는 싱크 Atlas 클러스터의 읽기 또는 쓰기 (write) 용량 초과할 수 있습니다. 이는 프로세서의 지연 시간 증가시킬 뿐만 아니라 해당 클러스터에 의존하는 다른 워크로드에 병목 현상을 일으킬 수 있습니다.
시스템 전체의 성능을 보장하려면 상호 작용 하는 프로세서에 비례하여 Atlas cluster를 확장하다 .
성능 및 지연 시간
처리 로직이 간단한 경우에도 성능 목표를 달성하려면 더 높은 계층의 프로세서가 필요할 수 있습니다.
- 높은 처리량: 상위 계층 프로세서가 스트림을 더 잘 지원
- 빠른 속도로 이벤트를 생성합니다.
짧은 지연 시간 SLA: 상위 계층 프로세서가 제공하는 높은 병렬 처리는 속도가 중요할 때 이벤트가 대기열에 누적되지 않도록 하는 데 도움이 됩니다. 특히 SP50 프로세서는 SP30 프로세서보다 4배 더 많은 스레드를 제공합니다.
- 데이터 인리치먼트 및 캐싱: 을(를) 사용하여 인리치먼트하는 경우
$cachedLookup - 정적 또는 느리게 변화하는 참조 데이터가 많은 스트림은 캐싱에 필요한 RAM 제공하기 위해 상위 계층 프로세서를 선호합니다.
- 데이터 인리치먼트 및 캐싱: 을(를) 사용하여 인리치먼트하는 경우
- 복합 싱크: 특정 싱크는 더 비쌉니다.
- 변환, 트랜잭션 및 파일 관리 오버헤드. 이러한 싱크와 상호 작용 프로세서의 경우 계층이 높을수록 일관적인 성능과 지연 시간 보장하는 데 도움이 됩니다.
확장
Atlas Stream Processing 확장 수직입니다. 프로세서를 중지하고 새 계층 선택한 다음 다시 시작하여 프로세서를 확장하다 하거나 축소할 수 있습니다. Atlas Stream Processing 체크포인트는 전환 중에 데이터가 손실되지 않도록 합니다. 프로세서의 성능을 정기적으로 모니터링하고 이 가이드 에 설명된 요인에 따라 계층을 조정합니다.