로드 밸런싱 시스템과 Erlang C의 경제학

서버당 이용률을 일정하게 유지하면서 로드 밸런싱 시스템의 서버 수를 늘리면 평균 지연 시간(mean latency)이 감소하고 꼬리 백분위수(tail percentiles)가 개선됩니다. 부하가 서버 수에 따라 선형적으로 증가하는 시스템에서, 시스템 규모가 확장됨에 따라 대기열(queue)에서 소비되는 시간은 점근적으로 0에 수렴하며, 이는 더 큰 클러스터가 동일한 이용률 수준에서 더 나은 지연 시간을 제공함을 의미합니다.

M/M/c 대기열 시스템에서의 지연 시간 동작

Poisson 도착 프로세스, 지수 분포된 서비스 시간, 그리고 c개의 백엔드 서버로 특징지어지는 M/M/c 대기열 시스템에서, 규모와 지연 시간 사이의 관계는 비선형적입니다. 무한한 대기열을 가진 로드 밸런서가 한 번에 하나의 동시 요청을 처리할 수 있는 c개의 서버로 트래픽을 분산할 때, 서버당 부하가 일정하게 유지되더라도(예: 80% 이용률), c가 증가함에 따라 클라이언트가 관찰하는 평균 요청 시간은 감소합니다.

이러한 동작은 들어오는 요청이 즉시 처리되지 않고 대기열에 추가되어야 할 확률을 계산하는 Erlang의 C 공식에 의해 설명됩니다. 서버의 수가 증가함에 따라 요청이 대기열에 추가될 확률은 크게 떨어집니다:

  • 소규모 규모: 특정 이용률에서 서버 수가 적은 시스템은 요청이 대기열에 도달할 확률이 더 높습니다.
  • 대규모 규모: 동일한 이용률에서 서버 수가 더 많은 시스템은 트래픽 급증을 흡수하는 데 더 효율적이며, 결과적으로 대기열 발생 확률이 낮아집니다.

평균 및 꼬리 지연 시간에 미치는 영향

평균 지연 시간은 종종 논쟁의 여지가 있는 지표이지만, Monte-Carlo 시뮬레이션을 통해 이러한 지연 시간 개선은 평균에만 국한되지 않음을 보여줍니다. 중앙값(p50)과 높은 백분위수(p99 및 p99.9) 또한 서버의 수가 증가함에 따라 유사한 하향 추세를 따릅니다. 이는 서버 수를 확장하는 것이 숨겨진 성능 저하를 유발하지 않고 꼬리 지연 시간을 효과적으로 줄일 수 있음을 나타냅니다.

클라우드 서비스의 경제적 함의

서버 수를 확장하는 것은 뚜렷한 경제적 이점을 제공합니다: 운영자는 동일한 리소스 이용률에서 더 낮은 지연 시간을 달성하거나, 동일한 지연 시간 목표를 위해 더 높은 이용률을 달성할 수 있습니다. 이러한 지연 시간 이득의 대부분은 상대적으로 완만한 c 값에서 발생하므로, 이 이점은 하이퍼스케일 인프라뿐만 아니라 중소규모 서비스에도 적용 가능합니다.

모델 가정 및 제약 사항

M/M/c 모델은 실제 운영 환경과 항상 일치하지 않을 수 있는 특정 가정에 의존합니다:

  • 도착 프로세스: Poisson 도착 프로세스를 가정합니다.
  • 서비스 시간: 지수 서비스 시간을 가정합니다. 실제 서비스는 종종 log-normal 서비스 시간 분포를 보이지만, 규모 확장에 따른 지연 시간 개선의 일반적인 추세는 대개 지속됩니다.
  • 안정성 요구 사항: 시스템이 안정적으로 유지되고 무한한 대기열을 피하기 위해서는, 평균 도착률($λ$)과 서버 수($c$) 및 평균 서비스율($μ$)의 곱의 비율이 1보다 작아야 합니다($λ/cμ < 1$). 만약 도착률이 시스템의 총 처리 용량을 초과하면, 지연 시간은 무한히 증가할 것입니다.

Sources