Enterprise Infrastructure Intelligence ● Certified engineers online · Fast response guaranteed
AI/소프트웨어

Leaky Bucket Rate Limiting: 아키텍처 작동 원리와 실무 고려사항

Leaky Bucket은 고정된 누수 속도로 요청을 처리하는 비작업-보존 스케줄러 기반 Rate Limiting 알고리즘입니다. 토큰 누적·소비 메커니즘으로 순간 버스트를 억제하며 트래픽 평탄화에 효과적입니다.

2026.09.02  ·  26회  · 

Leaky Bucket의 기본 아키텍처

Leaky Bucket은 Diffserv 트래픽 조건화 모델에서 비작업-보존 스케줄러(non-work-conserving scheduler)로 구현됩니다. 고정 용량의 버킷에 도착하는 패킷들을 큐에 저장하고, 일정한 누수 속도로 처리하는 구조입니다. RFC 3290에 정의된 바에 따르면, 트래픽은 일정한 시간 단위(예: 10ms)마다 이론적으로 1비트씩 처리되지만, 실제로는 패킷 단위로 근사 속도를 유지합니다.

핵심 작동 원리: 버킷은 Committed Information Rate(CIR)에 따라 토큰을 생성하며, 최대 크기는 Committed Burst Size(CBS)로 제한됩니다. 패킷 도착 시 필요한 토큰이 충분하면 패킷은 전달되고 토큰이 차감되며, 불충분하면 폐기됩니다(폴리싱) 또는 버퍼링되어 대기합니다(셰이핑).

Token 메커니즘과 Strict vs Loose 준수

RFC 2697(Single Rate Three Color Marker)에서 규정하는 Strict 준수 모드에서는 패킷 전체에 대한 토큰이 존재해야만 전달되므로, 가변 길이 패킷 환경에서 MTU 근처 크기의 패킷이 차별받을 수 있습니다. Loose 준수는 단일 비트만 있어도 패킷을 수용하되 미래 할당을 빌려오는 방식으로, 더 관대한 처리를 제공하지만 버스트 보증이 약해집니다.

실무 주의사항과 구현 고려사항

클록 세분성(clock granularity)이 낮을 경우 shaped stream에 지터가 발생합니다. 특히 밀리초 단위 클록에서는 토큰 누적 타이밍이 패킷 전송 지연을 야기할 수 있습니다. RFC 3290에 따르면 Token Bucket 미터와 달리 Leaky Bucket은 트래픽을 절대적 평탄화하므로 버스트를 허용하지 않으며, 이는 Token Bucket 대비 낮은 처리량 유연성을 의미합니다. 광역 배포에서는 MTU보다 큰 버스트 크기를 설정하여 클록 지터를 흡수하고 실제 수용 속도를 이론값에 근접시키는 것이 권장됩니다.

WIKIDATA WORKSTATION
AI·렌더링에 최적화된
전문가용 워크스테이션
NVIDIA RTX GPU · 최대 192GB 메모리 · ECC 지원