AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Docs Menu

Atlas Stream Processing 계층 선택 가이드

Atlas Stream Processing은 계층에 따라 스트림 프로세서당 리소스를 할당합니다. 고정된 리소스 할당 및 비용 예측 가능성을 제공하여 시스템 설계 프로세스 간소화합니다. 이 가이드 사용하여 배포서버 계획할 때 Stream Processing 워크로드에 가장 적합한 계층을 파악하세요.

각 계층 처리 능력, 메모리, 대역폭, 병렬 처리 및 Apache Kafka 소스가 있는 프로세서의 경우 파티션에 대한 고정 할당을 제공합니다.

계층
vCPU
RAM (GB)
대역폭(Mbps)
최대 병렬도
소스 Kafka 파티션 제한
초기 동기화 수집 한도

SP2

0.25

0.5

50

1

32

1

SP5

0.5

1

125

2

64

1

SP10

1

2

200

8

무제한

5

SP30

2

8

750

16

무제한

10

SP50

8

32

2500

64

무제한

50

병렬도는 스트림 프로세서가 데이터를 읽고, 보강하고, 쓰기 (write) 사용할 수 있는 스레드 또는 동시 요청 수를 결정합니다. 개별 파이프라인 단계에서 병렬 처리를 구성하지만, Atlas Stream Processing 앞의 표에 표시된 프로세서 계층 의 최대값에 대해 프로세서 전체에 병렬 처리를 적용합니다.

다음 단계에서는 parallelism 값을 허용합니다. 각각 기본값은 1입니다.

단계
더 높은 값의 효과

initialSync.parallelism 필드 initialSync 작업의 병렬 처리를 설정합니다. coll 컬렉션 이름을 두 개 이상 지정하는 경우, 이 값은 각 컬렉션 아닌 컬렉션 목록 전체에 적용됩니다.

$lookup 대상에 대한 최대 병렬 요청 수를 늘려 처리량 늘릴 수 있지만 대상 클러스터 에서 더 많은 리소스를 사용합니다. 1 ~ 64 사이의 정수여야 합니다.

Atlas Stream Processing 쓰기 (write) 작업을 분산하는 스레드 수를 늘리며, 이 경우 스트림 프로세서와 해당 스트림이 쓰는 클러스터 모두 더 많은 계산 리소스를 사용해야 합니다.

싱크 연산자 사용하는 내부 쓰기 (write) 스레드 수를 늘려 쓰기 (write) 작업을 해당 스레드에 분산합니다. partitionBy 필드 지원 싱크의 경우, 해당 표현식 의 해시에 따라 각 문서 처리하는 스레드가 결정됩니다.

더 많은 계산 리소스가 필요한 외부 함수에 대한 최대 병렬 요청 수를 늘립니다.

각 스트림 프로세서에는 해당 계층 에 따라 결정되는 최대 누적 병렬 처리 수 값이 있습니다. 스트림 프로세서의 누적 병렬 처리 수는 다음과 같이 계산됩니다.

parallelism total - parallelized stages

여기서 parallelism total 은(는) $source, $lookup, $merge, $emit 및 $externalFunction 단계에서 1 보다 큰 모든 parallelism 값의 합계이며, parallelized stages 는 parallelism 값이 1보다 큰 이러한 단계의 수입니다.

예시 를 들어 $source 단계에서 parallelism 값을 4로 설정하고, $lookup 단계에서 parallelism 값을 설정하지 않으며(따라서 기본값은 1), $merge 단계는 parallelism 값이 2인 경우 두 개의 parallelized stages이(가) 있고 스트림 프로세서의 누적 병렬 처리 수는 (4 + 2) - 2(으)로 계산됩니다.

스트림 프로세서가 해당 계층 의 최대 누적 병렬 처리 수를 초과하는 경우 Atlas Stream Processing 오류가 발생하고 의도한 병렬 처리 수준에 필요한 최소 프로세서 계층 알려줍니다. 오류를 해결하려면 프로세서를 더 높은 계층 으로 확장하다 하거나 단계의 병렬 처리 값을 줄여야 합니다. 자세한 학습은 Stream Processing을 참조하세요.

Apache Kafka 에서 읽는 프로세서도 해당 계층 의 소스 파티션 제한에 의해 제한됩니다. SP2 계층 프로세서를 32 소스 파티션으로 제한하고 SP5 계층 프로세서를 64로 제한합니다. SP10 계층 이상에는 파티션 제한이 없습니다.

해당 계층 의 파티션 제한을 초과하는 프로세서에는 장애가 발생하며, 추가 파티션을 지원 하도록 해당 프로세서를 확장하다 해야 합니다. 프로세서가 실행되는 동안 주제 파티션이 발생할 수 있으므로 예상하는 파티션 증가에 대한 헤드룸이 있는 계층 선택하세요. Kafka 소스 동작에 대해 자세히 학습 제한 사항을 참조하세요.

구성한 병렬 처리와 프로세서 계층 에서 사용할 수 있는 병렬 처리를 비교하려면 프로세서 통계가 반환하는 stats.addedParallelism 필드 사용합니다. Atlas Stream Processing 하나 이상의 단계에서 parallelism 값을 1보다 크게 설정한 경우에만 이 필드 반환합니다.

각 계층 의 리소스 할당이 다르기 때문에 프로젝트 의 다양한 단계와 규모에 적합합니다.

계층
사용 사례

SP2

개발, 평가판 배포

제한된 리소스 요구 사항으로 기본 워크로드를 지원할 수 있는 가장 저렴한 옵션입니다.

SP5

개발, 기본 프로덕션 배포

더 복잡한 계산을 사용하는 작업에도 처리량 낮은 프로덕션 작업에 적합한 저비용 옵션입니다. SP5 프로세서는 기본 필터링, 프로젝션 및 변경 스트림 처리 지원 수 있습니다.

SP10

메인스트림 프로덕션 배포

프로덕션 워크로드의 기준입니다. SP10 이상은 높은 수준의 병렬 처리, 무제한 Kafka 분할 또는 조회 및 조인과 같은 데이터 보강 작업이 필요한 파이프라인에 적합합니다.

SP30

복잡한 프로덕션 배포

메모리 집약적인 상태 저장 작업을 위해 설계된 고성능 옵션입니다. SP30는 장기간 창, 다중 조회 및 대규모 데이터 보강을 위해 대용량 RAM 버퍼가 필요한 확장하다 를 사용하는 파이프라인을 지원합니다.

SP50

엔터프라이즈 규모 프로덕션

처리량이 많은 스트림과 광범위한 변환 로직을 위해 설계된 최고 성능 옵션입니다. SP50 프로세서는 대규모 병렬 처리 또는 컴퓨팅 집약적인 워크플로가 필요한 작업에 적합합니다.

적절한 계층 선택할 때 다음 요소를 고려하세요.

스트림 프로세서는 일반 작업보다 초기 실행 중에 더 많은 리소스가 필요할 수 있습니다. 예시 를 들어, 대규모 Atlas 컬렉션 에 대해 initialSync를 수행하는 프로세서는 동기화 기간 동안 많은 I/O 및 계산을 지원 해야 합니다.

이러한 증가된 수요를 흡수하려면 일시적으로 상위 계층 선택하고 동기화가 완료되고 프로세서가 새로운 변경 스트림 이벤트만 사용하도록 전환되면 프로세서를 축소 확장하다 .

집계 파이프라인 로직은 CPU 및 RAM 소비의 프라이머리 드라이버 입니다.

  • Windows: 오래 지속되는 창은 이동 중에 보관하기 위해 더 많은 RAM 사용합니다.
    문서입니다.
  • 사용자 지정 로직: Javascript $function 단계 또는 복잡한 그룹화
    로직은 각 메시지의 계산 요구 사항을 증가시킵니다.
  • 복합 복잡성: 상태 저장 또는 계산적으로 복잡한 추가 단계
    리소스 수요에 더 많은 잠재적 변동이 발생합니다. 잉여 용량 유지하면 사용량이 급증하는 동안에도 일관적인 처리량 보장됩니다.

각 네트워크 또는 저장 문의 점 스트림 프로세서의 오버헤드 증가시킵니다.

  • 소스 또는 싱크 밀도: 병렬화된 읽기 또는 쓰기
    소스 또는 싱크(예: Apache Kafka 주제)는 I/O 요구 사항을 증가시킵니다.
  • 데이터 강화: $lookup 및 $https 단계, 및 작업
    스트림 의 데이터를 보강하기 위해 Atlas 컬렉션을 사용하려면 네트워크 대역폭과 연결 풀링 필요합니다.
  • 조정: 많은 소스를 조정하는 복잡한 배포에서
    스트림 프로세서는 이러한 각 노드 간에 데이터 흐름을 라우팅하는 허브 제공 을 할 수 있습니다. 이러한 프로세서는 SP30 및 SP50 계층의 더 높은 처리량 의 이점을 누릴 수 있습니다.

반대로 처리량이 많은 Stream Processing 워크로드는 연결된 리소스에 대한 수요를 증가시킬 수 있습니다.

  • Atlas 에 미치는 영향: 스트림 의 대용량 병렬 I/O

    프로세서는 소스 또는 싱크 Atlas 클러스터의 읽기 또는 쓰기 (write) 용량 초과할 수 있습니다. 이는 프로세서의 지연 시간 증가시킬 뿐만 아니라 해당 클러스터에 의존하는 다른 워크로드에 병목 현상을 일으킬 수 있습니다.

    시스템 전체의 성능을 보장하려면 상호 작용 하는 프로세서에 비례하여 Atlas cluster를 확장하다 .

처리 로직이 최소화된 경우에도 성능 목표를 달성하려면 더 높은 계층의 프로세서가 필요할 수 있습니다.

  • 높은 처리량: 상위 계층 프로세서가 스트림을 더 잘 지원
    빠른 속도로 이벤트를 생성합니다.
  • 짧은 지연 시간 SLA: 상위 계층 프로세서가 제공하는 높은 병렬 처리는 속도가 중요할 때 이벤트가 대기열에 누적되지 않도록 하는 데 도움이 됩니다. 특히 SP50 프로세서는 SP30 프로세서보다 4배 더 많은 스레드를 제공합니다.

  • 데이터 인리치먼트 및 캐싱: $cachedLookup 을(를) 사용하여 인리치먼트하는 경우
    정적 또는 느리게 변화하는 참조 데이터가 많은 스트림은 캐싱에 필요한 RAM 제공하기 위해 상위 계층 프로세서를 선호합니다.
  • 복합 싱크: 특정 싱크는 더 비쌉니다.
    변환, 트랜잭션 및 파일 관리 오버헤드. 이러한 싱크와 상호 작용 프로세서의 경우 계층이 높을수록 일관적인 성능과 지연 시간 보장하는 데 도움이 됩니다.

Atlas Stream Processing 확장 수직입니다. 프로세서를 수동으로 확장하다 하거나 자동 확장을 활성화 Atlas Stream Processing 계층 을 조정하도록 할 수 있습니다.

프로세서를 수동으로 확장하다 하려면 프로세서를 중지하고 새 계층 선택한 다음 다시 시작합니다. Atlas Stream Processing 체크포인트는 전환 중에 데이터가 손실되지 않도록 합니다. 프로세서의 성능을 정기적으로 모니터링하고 이 가이드 에 설명된 요인에 따라 계층을 조정합니다.

Atlas Stream Processing 리소스 사용량에 따라 자동으로 계층 조정하도록 하려면 수직 자동 확장을 활성화. 이 가이드 의 요소를 사용하여 minTier maxTier 프로세서가 확장하다 할 수 있는 범위 제한하는 및 를 선택합니다.