수직 자동 조정은 리소스 사용량에 따라 스트림 프로세서의 계층을 자동으로 조정합니다. 자동 확장을 활성화하면 Atlas Stream Processing은 사용자가 정의한 계층 범위 내에서 프로세서를 확장하거나 축소합니다. 프로세서의 계층을 변경하려면 프로세서를 수동으로 중지하고 다시 시작할 필요가 없습니다.
자동 확장은 급변하는 워크로드를 처리하다 , 예기치 않은 트래픽 급증을 흡수하고, 프로세서가 계층 의 리소스를 소진할 때 발생하는 장애를 방지하는 데 도움이 됩니다. Atlas Stream Processing 확장 결정을 내부적으로 관리하므로 사용량을 모니터 하고 프로세서의 크기를 직접 조정할 필요가 없습니다.
사용 사례
다음 시나리오에서는 수직 자동 확장을 활성화하는 것이 좋습니다.
불확실한 초기 규모 설정: 프로세서가 필요로 하는 계층을 정확하게 예측할 수 없는 경우, 더 작은 계층으로 시작하여 자동 규모 조정이 계층을 실제 부하에 맞추도록 조정하도록 합니다.
트래픽 변동 또는 증가: 워크로드 본질적인 증가 또는 주기적인 스파이크가 발생하는 경우 자동 확장은 수요가 많을 때 리소스를 늘리고 수요가 적을 때 리소스를 줄입니다.
운영 회복 탄력성: 용량이 작은 프로세서로 인해 피크 이벤트 기간에 장애가 발생할 위험이 있는 경우, 자동 확장 기능이 자동으로 계층 올려 프로세서가 실행 되도록 합니다.
자동 확장 작동 방식
스트림 프로세서에 자동 확장을 활성화 Atlas Stream Processing 프로세서의 CPU 및 메모리 사용량을 모니터링하고 내부적으로 managed 임계값과 비교합니다. Atlas Stream Processing 응답성과 안정성의 균형을 맞추기 위해 이러한 임계값을 제어하며, 사용자는 이를 구성할 수 없습니다.
프로세서의 계층을 변경하려면, Atlas Stream Processing은 다음과 같은 조치를 수행합니다:
프로세서 다시 시작
Atlas Stream Processing 새 계층 에서 프로세서를 다시 시작하고 마지막으로 커밋된 체크포인트 부터 작업을 재개하므로 데이터가 손실되지 않습니다.
확장 동작
Atlas Stream Processing 프로세서의 리소스 사용량이 일정 기간 동안 다음 확장 임계값 중 하나를 초과할 때 프로세서를 다음 상위 계층 으로 확장합니다.
CPU 사용량이 60 분 동안 90% 이상입니다.
메모리 사용량이 60 분 동안 80% 초과 또는 30 초 동안 90% 초과입니다.
Atlas Stream Processing도 프로세서의 메모리가 부족하면 프로세서를 확장합니다. 자동 확장이 활성화되면, 메모리 부족 상태에서는 프로세서가 실패하는 대신 프로세서를 다음 높은 계층으로 확장합니다.
확장은 프로세서 가용성을 보호하기 위해 지속적인 리소스 압박에 빠르게 대응합니다.
Atlas Stream Processing scales a processor up only when the next higher tier is less than or equal to the configured maxTier.
축소 동작
Atlas Stream Processing은 프로세서의 CPU 및 메모리 사용량이 2일 이상 확장하다 임계값 미만으로 유지될 경우 프로세서를 다음 하위 계층으로 확장합니다. 축소 임계값은 다음 하위 계층의 확장 임계값에서 프로세서가 즉시 다시 확장하는 것을 방지하는 10% 버퍼를 차감한 값입니다. 이 이틀간의 안정화 기간은 계층 간의 자주 확장을 방지하기 위해 확장 축소를 의도적으로 느리게 만듭다.
Atlas Stream Processing scales a processor down only when the next lower tier is greater than or equal to the configured minTier.
계층 바운드: minTier 및 maxTier
Atlas Stream Processing 확장 임계값을 관리하지만, 다음 두 가지 설정을 통해 프로세서가 확장하다 할 수 있는 계층의 범위 를 제어할 수 있습니다.
설정 | 설명 |
|---|---|
| 프로세서가 확장하다 낮출 수 있는 최하 계층입니다. 리소스의 기준 수준을 보장하고 비용 하한선을 설정합니다. |
| 프로세서를 확장하다 할 수 있는 가장 높은 계층 . 리소스 소비와 비용 제한하고, 비정상적인 스파이크가 프로세서를 불필요하게 비싼 계층 으로 확장 것을 방지합니다. |
자동 확장을 활성화 때 또는 을(를) 지정하지 않으면 Atlas Stream minTier maxTier Processing 스트림 처리 작업 공간 구성을 기본값 으로 사용합니다.
minTier를 지정하지 않으면 Atlas Stream Processing 스트림 처리 작업 공간 기본값 계층 과 프로세서를 시작하는 계층 중 더 낮은 계층을 사용합니다. 더 낮은 값을 사용하면 기본값 계층 이 시작 계층 위에 있을 때 잘못된 구성을 방지할 수 있습니다.maxTier을(를) 지정하지 않으면 Atlas Stream Processing 스트림 처리 공간의 최대 계층 크기를 사용합니다. 스트림 처리 작업 공간에 최대 계층 크기가 없는 경우 프로세서는 오류를 반환하고 시작되지 않습니다.
일부 파이프라인 기능에는 최소 계층 필요합니다. 예시 들어 페일오버 프로세서를 사용하는 프로세서에는 최소 계층 이 필요합니다.SP10 minTier를 프로세서의 파이프라인 에 필요한 최소 계층 이상으로 설정합니다.
다음 표는 minTier 및 maxTier가 확장 작업을 어떻게 바인딩하는지 보여줍니다.
계층 구성 | 현재 계층 | 확장 조치 | 결과 계층 |
|---|---|---|---|
|
| 확장 |
|
|
| 확장 |
|
|
| 축소 |
|
|
| 축소 | 남은 |
자동 확장 활성화 및 구성
You can enable, modify, and disable autoscaling for a stream processor with the autoscaling option on the sp.processor.start() or sp.processor.modify() method in mongosh. Atlas Stream Processing persists the autoscaling configuration, so a processor reuses its prior configuration if you stop and restart it without changes.
Stream Processing 작업 공간의 기본값 계층과 최대 계층을 경계로 사용하여 자동 크기 조정(autoscaling)을 사용하려면 다음 구문을 사용합니다.
sp.processor.start({autoscaling: {enabled: true}})
명시 계층 경계로 자동 확장을 활성화 하려면 minTier 및 maxTier를 지정합니다.
sp.processor.start( {autoscaling: {enabled: true, minTier: "SP2", maxTier: "SP50"}} )
프로세서가 시작할 계층을 설정하면서 다른 범위 내에서 확장할 수 있도록 허용하려면 autoscaling 옵션과 함께 tier을 지정합니다.
sp.processor.start( {tier: "SP10", autoscaling: {enabled: true, minTier: "SP5", maxTier: "SP30"}} )
기존 프로세서의 계층 경계를 변경하려면, 프로세서를 중지하고 새 값으로 계층 수준을 수정하세요. 프로세서를 수정하기 전에 중지해야 합니다. Atlas Stream Processing은 제공하는 값만 변경합니다:
sp.processor.modify( {autoscaling: {enabled: true, minTier: "SP2", maxTier: "SP30"}} )
자동 확장을 비활성화하려면 프로세서를 중지하고 enabled을(를) false(으)로 설정하다 .
sp.processor.modify({autoscaling: {enabled: false}})
When you disable autoscaling, Atlas Stream Processing pins the processor's effectiveTier to its tier baseline.
추가 동작
계층 및 effectiveTier
자동 확장이 활성화되면 Atlas Stream Processing 프로세서에 대한 두 가지 계층 값을 추적합니다.
tier: 설정한 기준 계층. Atlas Stream Processing은 자동 확장을 통해 이 값을 변경하지 않습니다. 새 기준선을 설정할 때에만 변경됩니다. 이 새 기준선은 다음 프로세서를 시작할 때 적용됩니다.effectiveTier: 프로세서가 실제로 실행 중인 계층 보여주는 읽기 전용 값입니다. 자동 확장이 활성화되면 Atlas Stream ProcessingminTier및maxTier에서 설정하다 범위 내에서effectiveTier를 조정합니다. 자동 확장이 비활성화되면effectiveTier는tier와 일치합니다.
자동 확장 기능으로 effectiveTier를 변경한 후 프로세서를 중지하면 Atlas Stream Processing 처음 시작한 tier가 아닌 마지막 effectiveTier에서 프로세서를 다시 시작합니다. 이 동작을 통해 프로세서는 자동 확장을 다시 기다리지 않고 이전 워크로드 재개할 수 있습니다.
To view a processor's autoscaling configuration and current tier, use the sp.processor.stats() method. The output includes the tier baseline, the read-only effectiveTier, and an autoscaling object with minTier and maxTier:
sp.processor.stats() { ok: 1, name: 'sampleProc', state: 'STARTED', tier: 'SP10', effectiveTier: 'SP10', autoscaling: { minTier: 'SP2', maxTier: 'SP50' }, stats: { ... }, ... }
계층 정렬
구성된 자동 확장 범위 minTier 미만 또는 maxTier 초과인 tier 값을 사용하여 프로세서를 시작하면 프로세서는 오류를 반환하고 시작되지 않습니다.
maxTier의 리소스 고갈
프로세서가 구성된 maxTier에서 리소스를 소진하는 경우 Atlas Stream Processing 다음과 같이 작동합니다.
메모리 고갈: 프로세서에 메모리 부족 오류가 발생합니다.
CPU 고갈: 프로세서는 계속 실행됩니다.
프로세서가 maxTier에 도달하고 워크로드를 감당할 수 없는 경우, 파이프라인 로직을 최적화하거나 maxTier을 늘리는 것을 고려하세요.
자동 확장 이벤트 모니터링
Atlas Stream Processing은 각 확장하다 및 확장하다 이벤트를 기록합니다. 각 기록에는 프로세서와 Stream Processing 워크스페이스, 이벤트가 확장 이벤트인지 축소 이벤트인지, 프로세서가 이동한 계층과 이동하기 전의 계층, 그리고 이벤트를 트리거한 지표가 포함됩니다. 확장 이벤트를 보고 경고를 구성하는 방법을 학습하려면 Stream Processors 모니터를 참조하세요.
시작하기
자동 확장을 활성화 스트림 프로세서를 생성하고 관리 방법을 학습 스트림 프로세서 개발을 참조하세요.
워크로드 에 적합한 계층 범위 선택하려면 계층 선택 가이드를 참조하세요.