피드로 돌아가기
A load balancer inspired by how Emperor Penguins survive Antarctic winters
Dev.toDev.to
Infrastructure

상대적 지표 기반 서버 Rotation으로 P95 Latency를 5,026ms에서 85.6ms로 단축

A load balancer inspired by how Emperor Penguins survive Antarctic winters

Rahad Bhuiya2026년 6월 15일6intermediate

Context

Round Robin 및 Least Connections 방식이 특정 서버의 점진적 성능 저하(Slow Server)를 감지하지 못해 클러스터 전체 성능을 저하시키는 문제 발생. 수동 설정 기반의 Weighted 방식은 실시간 트래픽 변화에 대응하지 못하는 운영 효율성 한계를 가짐.

Technical Solution

  • 서버 상태를 'Temperature'라는 복합 지표로 정의하여 Active(Inner ring)와 Resting(Outer ring) 상태로 분리한 Rotation 구조 설계
  • Absolute Latency 대신 Cluster Median 대비 상대적 편차를 측정하는 Relative Latency Anomaly 방식을 도입하여 환경 변화에 유연한 Self-calibration 구현
  • EMA(Exponential Moving Average)를 적용해 최근 상태에 가중치를 부여함으로써 단순 평균 대비 빠른 장애 복구 및 상태 반영 속도 확보
  • Inner ring은 Deque를 활용한 O(1) Round-robin 분배를 수행하며, Outer ring은 Min-heap을 통해 가장 낮은 Temperature를 가진 서버부터 우선 복귀시키는 O(log n) 구조 채택
  • User-visible 신호인 Latency(70%)와 선행 지표인 CPU, Memory, Error Rate(30%)를 결합한 가중치 기반 스코어링 모델 적용

- 시스템 지표 설계 시 Absolute Value가 아닌 Cluster Median 기반의 Relative Scoring 도입 검토 - 일시적 스파이크 노이즈 제거와 빠른 반응성 확보를 위해 SMA 대신 EMA 적용 고려 - 서버 상태 관리를 위해 단순 List보다 목적에 맞는 Deque(회전)와 Min-heap(우선순위 복구) 조합의 자료구조 활용

원문 읽기