L = λ × W
용량 계획에서 가장 유용한 공식
내부 구조와 무관하게, 모든 안정된 대기열에 대해: L = λ × W (여기서:
- L = 시스템 내 평균 항목 수 (처리 중이거나 대기 중)
- λ (람다) = 평균 도착률 (단위 시간당 항목 수)
- W = 각 항목이 시스템에 머무는 평균 시간
기하학적 해석: 한 축에 λ를, 다른 축에 W를 그립니다. 곱 L은 이 둘이 형성하는 사각형의 넓이입니다. 용량 계획은 이 사각형 안에 존재합니다.
중요성: 세 가지 양 중 두 가지를 알면 나머지 하나를 결정할 수 있습니다. 처리량과 지연 시간을 측정하면 점유율을 알 수 있고, 점유율과 처리량을 측정하면 지연 시간을 알 수 있습니다. 이 법칙은 강력합니다: 웹 요청, 레스토랑 테이블, 슈퍼마켓 대기열, CPU 파이프라인에 수정 없이 적용됩니다.
세 가지 구체적인 예시:
- 웹 서비스가 초당 200건의 요청을 처리하고 평균 지연 시간이 50ms(0.05초)입니다. L = 200 × 0.05 = 10건이 진행 중입니다.
- 커피숍이 시간당 60명의 고객을 응대하고 평균 체류 시간이 15분(0.25시간)입니다. L = 60 × 0.25 = 15명의 고객이 내부에 있습니다.
- 백엔드 풀이 초당 1500건의 요청을 처리하고 평균 지연 시간이 200ms(0.2초)입니다. L = 1500 × 0.2 = 300건이 진행 중입니다.
크기 설정 함의: 해당 계층의 워커 수/스레드 수/커넥션 수는 대응하기 위해 최소한 L 이상이어야 합니다. 그보다 적으면 대기열이 증가합니다.
왜 지연 시간이 80% 사용률을 넘어서면 급격히 증가하는가
운영에서 가장 중요한 곡선
x축에 사용률(0%~100%), y축에 평균 대기 시간을 그래프로 나타내면, 그 모양은 용량 계획에서 가장 중요한 곡선 중 하나입니다.
M/M/1 대기열 모델: 포아송 도착(무작위)과 지수 분포 서비스 시간(무작위)을 가진 시스템의 경우, 평균 대기 시간은 다음과 같습니다:
W_q = ρ / (μ × (1 - ρ))
여기서 ρ는 사용률(0~1), μ는 서비스 속도입니다.
곡선의 모양:
- ρ = 0.5(50% 사용률)일 때, 대기 시간은 매우 짧습니다(서비스 시간 1회분).
- ρ = 0.7(70% 사용률)일 때, 대기 시간은 서비스 시간의 약 2.3배입니다.
- ρ = 0.8(80% 사용률)일 때, 대기 시간은 서비스 시간의 약 4배입니다.
- ρ = 0.9(90% 사용률)일 때, 대기 시간은 서비스 시간의 약 9배입니다.
- ρ = 0.95(95% 사용률)일 때, 대기 시간은 서비스 시간의 약 19배입니다.
- ρ = 1.0(100% 사용률)일 때, 대기 시간은 무한대입니다.
곡선의 무릎(knee): 약 80% 사용률 부근에서 곡선이 급격하게 꺾입니다. 무릎 아래에서는 용량이 여유롭지만, 무릎 위에서는 사용률 증가 속도보다 지연 시간이 더 빠르게 증가합니다.
실용적 해석: 정상 상태(steady-state)를 위해 70% 사용률을 목표로 하되, 절대 100%를 넘지 마세요. 30%의 '여유 공간(headroom)'은 낭비가 아니라, 제한된 지연 시간을 유지하기 위한 대가입니다.
무릎 지점(Knee Point)을 가로지르는 용량 설정
두 가지 시나리오:
시나리오 A: 10개의 리플리카가 60% CPU 사용률로 실행 중. 지연 시간 p99 = 100 ms.
시나리오 B: 트래픽 증가로 인해 동일한 플릿이 90% CPU 사용률로 실행 중. p99 = 600 ms.
동일한 플릿, 동일한 코드, 오직 사용률만 변경됨.
크기 및 트리거 통합 적용
종합
이제 리틀의 법칙을 직사각형으로 적용하고, 대기열 곡선과 그 무릎 지점을 읽으며, 이 둘을 모두 용량 결정과 연결할 수 있습니다.
둘 다 적용해 보세요.
백엔드 티어가 2,000 req/s를 처리하며, 평균 레이턴시는 50 ms이고, 리플리카당 처리 용량은 CPU 70%에서 80 req/s입니다. 서지 팩터는 2배이며, 3개의 리플리카가 동시에 장애를 겪어도 시스템이 견뎌내도록 구성하고자 합니다.
동반 노트
동반 노트
이 기하학 레슨은 무상태 수평 확장 주요 레슨을 정량적 기하학으로 재구성합니다.
다음 동반 레슨인 geometry_of_ingress_egress_separation는 네트워크 경계 분리를 이분 그래프로 재구성하며, 이 분리가 제거하는 절단 꼭짓점을 포함합니다.
잘 하셨습니다.