수직 자동 확장은 리소스 사용량에 따라 스트림 프로세서 계층 자동으로 조정합니다. 자동 확장을 활성화 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 다음 상위 계층 구성된 maxTier보다 작거나 같은 경우에만 프로세서를 확장합니다.
축소 동작
Atlas Stream Processing 프로세서의 CPU 및 메모리 사용량이 2일 이상 축소 임계값 아래로 유지되는 경우 프로세서를 다음 하위 계층 으로 축소합니다. 축소 임계값은 그 다음 하위 계층 의 확장 임계값에서 프로세서가 즉시 백업을 확장 하지 못하도록 하는 10% 버퍼를 뺀 값입니다. 이 2일의 안정화 기간 동안에는 계층 간에 빈번한 확장 방지하기 위해 의도적으로 확장 느리게 만듭니다.
Atlas Stream Processing 다음 하위 계층 구성된 minTier보다 크거나 같은 경우에만 프로세서를 확장합니다.
계층 바운드: minTier 및 maxTier
Atlas Stream Processing 확장 임계값을 관리하지만, 다음 두 가지 설정을 통해 프로세서가 확장하다 할 수 있는 계층의 범위 를 제어할 수 있습니다.
설정 | 설명 |
|---|---|
| 프로세서를 확장하다 할 수 있는 가장 낮은 계층 . 리소스의 기준 수준을 보장하고 비용 하한선을 설정합니다. |
| 프로세서를 확장하다 할 수 있는 가장 높은 계층 . 리소스 소비와 비용 제한하고, 비정상적인 스파이크가 프로세서를 불필요하게 비싼 계층 으로 확장 것을 방지합니다. |
자동 확장을 활성화 때 또는 을(를) 지정하지 않으면 Atlas Stream minTier maxTier Processing 스트림 처리 작업 공간 구성을 기본값 으로 사용합니다.
minTier를 지정하지 않으면 Atlas Stream Processing 스트림 처리 작업 공간 기본값 계층 과 프로세서를 시작하는 계층 중 더 낮은 계층을 사용합니다. 더 낮은 값을 사용하면 기본값 계층 이 시작 계층 위에 있을 때 잘못된 구성을 방지할 수 있습니다.maxTier을(를) 지정하지 않으면 Atlas Stream Processing 스트림 처리 공간의 최대 계층 크기를 사용합니다. 스트림 처리 작업 공간에 최대 계층 크기가 없는 경우 프로세서는 오류를 반환하고 시작되지 않습니다.
일부 파이프라인 기능에는 최소 계층 필요합니다. 예시 들어 페일오버 프로세서를 사용하는 프로세서에는 최소 계층 이 필요합니다.SP10 minTier를 프로세서의 파이프라인 에 필요한 최소 계층 이상으로 설정합니다.
다음 표는 minTier 및 maxTier가 확장 작업을 어떻게 바인딩하는지 보여줍니다.
계층 구성 | 현재 계층 | 확장 작업 | 결과 계층 |
|---|---|---|---|
|
| 확장 |
|
|
| 확장 |
|
|
| 축소 |
|
|
| 축소 |
|
자동 확장 활성화 및 구성
또는 의 sp.processor.start() 메서드에서 autoscaling 옵션을 사용하여 스트림 프로세서에 대한 sp.processor.modify() 자동 확장을 활성화 , 수정 mongosh 및 비활성화할 수 있습니다. Atlas Stream Processing 자동 확장 구성을 유지하므로 프로세서를 변경하지 않고 중지했다가 다시 시작하면 이전 구성을 재사용합니다.
스트림 처리 공간 기본값 및 최대 계층을 경계로 하여 자동 확장을 활성화 하려면 다음 구문을 사용합니다.
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}})
자동 확장을 비활성화하면 Atlas Stream Processing 프로세서의 유효 tier 계층을 기준선에 고정합니다.
추가 동작
계층 및 유효 계층
자동 확장이 활성화되면 Atlas Stream Processing 프로세서에 대한 두 가지 계층 값을 추적합니다.
tier: 사용자가 설정하다 기준 계층 . Atlas Stream Processing 자동 확장을 통해 이 값을 변경하지 않습니다. 새 기준을 설정하다 경우에만 변경되며 다음에 프로세서를 시작할 때 적용됩니다.effectiveTier: 프로세서가 실제로 실행 중인 계층 보여주는 읽기 전용 값입니다. 자동 확장이 활성화되면 Atlas Stream ProcessingminTier및maxTier에서 설정하다 범위 내에서effectiveTier를 조정합니다. 자동 확장이 비활성화되면effectiveTier는tier와 일치합니다.
자동 확장 기능으로 effectiveTier를 변경한 후 프로세서를 중지하면 Atlas Stream Processing 처음 시작한 tier가 아닌 마지막 effectiveTier에서 프로세서를 다시 시작합니다. 이 동작을 통해 프로세서는 자동 확장을 다시 기다리지 않고 이전 워크로드 재개할 수 있습니다.
프로세서의 자동 확장 구성 및 현재 계층 보려면 메서드를 사용합니다.sp.processor.stats() 출력에는 tier 기준선, 읽기 effectiveTier 전용, 및 가 있는 autoscaling 객체 포함됩니다.minTier 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 각 확장 및 축소 이벤트 기록합니다. 각 기록 프로세서 및 스트림 처리 작업 공간, 이벤트 확장 또는 축소인지 여부, 프로세서가 이전/이동한 계층, 이벤트 트리거한 지표를 식별합니다. 확장 이벤트를 보고 경고를 구성하는 방법을 학습 스트림 프로세서 모니터링을 참조하세요.
시작하기
자동 확장을 활성화 스트림 프로세서를 생성하고 관리 방법을 학습 스트림 프로세서 개발을 참조하세요.
워크로드 에 적합한 계층 범위 선택하려면 계층 선택 가이드를 참조하세요.