채널톡, 동적 스케일링 도입으로 트래픽 급증 문제 해결

by DD
3개월 전
조회수 0

채널톡의 B2B SaaS 제품인 벌크 액션 서버(Bulk Action Server)에서 Long Lived Job으로 인한 HOL Blocking 문제 발생

Per-Worker Queue Depth(PWQD)를 핵심 지표로 선정하고, Exponential Scale Up & Time Decay 기반의 스케일링 알고리즘 도입

동적 스케일링 도입으로 개발자 수동 개입 감소, Spike 트래픽(Spike Traffic)에 대한 안정적인 대응 가능

단일 Job Queue 구조의 한계로 인해 HOL Blocking 문제가 여전히 존재하며, 논리적 파티셔닝(Logical Partitioning)을 통한 해결 시도

PWQD(Per-Worker Queue Depth) 메트릭 선정 배경

본문에서는 PWQD(Per-Worker Queue Depth)를 핵심 지표로 선정한 배경을 설명한다. 기존의 Job Queue Depth, In-Flight Queue Size, Job Execution Latency 등의 지표는 Rate Limit, 스로틀링(Throttling) 등의 영향으로 인해 실제 Worker 부하를 정확하게 반영하지 못했다.

PWQD는 Queue Depth를 Worker 수로 나눈 값으로, Worker 수에 따른 상대적인 부하를 직관적으로 표현

PWQD는 클라이언트의 Job 전달 패턴에 덜 의존적이며, Spike 트래픽(Spike Traffic)에 대한 유연한 대응 가능

PWQD 임계치 초과 시 Scale Up, 지속적인 초과 시 Scale Up 트리거, Rate Limit 초기 탐색 구간에서의 불필요한 Scale Up 방지

동적 스케일링 알고리즘 설계 및 개선 과정

채널톡은 Spiky한 트래픽(Spiky Traffic)에 즉각적으로 대응하고, Scale Down 시 Oscillation 문제를 해결하기 위해 다양한 스케일링 알고리즘을 실험했다.

초기 지수적 증감 방식: PWQD 임계치 초과 시 지수적으로 Worker 수 증가. Oscillation 문제 발생

TCP 혼잡 제어(TCP Congestion Control) 기반 알고리즘: TCP AIMD(AIMD)를 차용하여 Scale Down 시 선형적 감소 적용. 초기 부하 급증 시 대응 미흡

최종 Exponential & Time Decay 방식: PWQD 지속적 초과 시 Scale Up, Time Decay 적용 Scale Down. Spiky 트래픽 대응 및 Oscillation 문제 해결

결과적으로, Exponential Scale Up과 Time Decay 기반 Scale Down을 결합하여 안정적인 스케일링(Stable Scaling)을 구현했다.

스케일링 알고리즘 개선의 기술적 의미

본문에서 제시된 동적 스케일링(Dynamic Scaling) 알고리즘은 클라우드 환경(Cloud Environment)에서 발생하는 트래픽 변동에 효과적으로 대응하기 위한 중요한 기술적 접근 방식을 보여준다.

PWQD 메트릭은 자원 사용률(Resource Utilization)을 정확하게 측정하고, 시스템 부하를 정량적으로 파악하는 데 기여

Exponential Scale Up과 Time Decay 기반 Scale Down은 트래픽 급증(Traffic Spike)과 변동에 대한 유연한 대응을 가능하게 함

자동 스케일링(Auto Scaling)을 통해 개발자의 수동 개입을 줄이고, 시스템 운영 효율성을 향상

결과적으로, 이 알고리즘은 탄력적인 시스템(Elastic System) 구축을 위한 핵심 요소이며, 클라우드 네이티브 아키텍처(Cloud Native Architecture)의 중요한 특징을 잘 보여준다.

동적 스케일링의 한계와 향후 과제

본문에서는 동적 스케일링(Dynamic Scaling) 도입에도 불구하고, 단일 Job Queue 구조로 인한 HOL Blocking 문제가 여전히 존재함을 지적한다.

HOL Blocking: 대규모 벌크 액션(Bulk Action)이 Job Queue를 점유하여 다른 요청의 처리 지연 발생

해결 방안: 논리적 파티셔닝(Logical Partitioning)과 Coordinator 기반 Partition별 독립 스케일링

향후 과제: HOL Blocking 문제 해결을 통해 전반적인 시스템 성능(Overall System Performance) 향상 및 안정성 확보

결론적으로, 동적 스케일링은 트래픽 관리에 중요한 역할을 하지만, 시스템 아키텍처(System Architecture)의 근본적인 문제를 해결하기 위한 추가적인 노력이 필요하다.

급증하는 트래픽 안정적으로 처리하기: 개선편(1) 동적 스케일링

댓글 0

첫 번째 댓글을 남겨보세요!