L = λ × W: 직사각형
Little의 법칙: 용량 계획에서 가장 유용한 방정식
John Little는 1961년에 내부 구조가 무엇이든 안정적인 모든 대기열에 대해 다음을 증명했습니다: 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명.
- 공장 라인은 시간당 100개 위젯을 생산하고 각 위젯은 처음부터 끝까지 2시간이 걸립니다. L = 100 × 2 = 처리 중인 위젯 200개.
프로비저닝 의미: L의 크기를 정할 수 있다면(동시에 비행 중인 항목), 시스템을 정한 것입니다. 워커 스레드 수, 데이터베이스 연결 수, 대기열 슬롯 모두 L에서 유래합니다.
워커 풀 크기 조정
비디오 트랜스코딩 서비스는 분당 30개의 트랜스코딩 작업의 평균 도착률로 크기가 지정되어 있으며, 각각은 처음부터 끝까지 90초가 걸립니다. 현재 워커 풀은 30명의 워커입니다.
80% 사용률을 초과할 때 지연이 폭발하는 이유
용량 계획에서 가장 중요한 곡선
x축에 사용률(0%~100%)을, y축에 평균 지연을 그립니다. 나타나는 형태는 작업에서 가장 중요한 곡선 중 하나입니다: 팀이 사용률을 100% 아래로 목표하는 이유, 예약된 헤드룸이 낭비가 아닌 이유, & 높은 사용률에서 '효율적으로' 실행되는 시스템이 경고 없이 실패하는 이유를 설명합니다.
M/M/1 대기열 곡선: Poisson 도착(임의) & 지수 서비스 시간(임의)이 있는 시스템의 경우 평균 대기 시간은 다음을 따릅니다:
W_q = ρ / (μ(1-ρ))
여기서 ρ(rho)는 사용률(0~1)이고 μ는 서비스 레이트입니다. 분모(1-ρ)가 핵심입니다: ρ가 1에 가까워질수록 분모는 0에 가까워지고 대기 시간은 무한대에 가까워집니다.
숫자 예: (M/M/1의 ρ 대비 지연 배수):
- ρ = 0.5: 지연 비율 1.0(기준선)
- ρ = 0.7: 지연 비율 ~2.3
- ρ = 0.8: 지연 비율 ~4.0
- ρ = 0.9: 지연 비율 ~9.0
- ρ = 0.95: 지연 비율 ~19.0
- ρ = 0.99: 지연 비율 ~99.0
팔꿈치는 약 70-80% 사용률에 위치합니다. 팔꿈치 아래에서는 부하를 추가하면 지연이 천천히 증가합니다. 팔꿈치 위에서는 지연이 비선형적으로 폭발합니다. 이것이 표준 SRE 규칙인 정상 상태 사용률 목표 80% 이하, 지속적으로 90% 이상 실행 금지인 이유입니다.
전통적인 작업 팀이 이것을 과소평가하는 이유: 60% CPU에서 서버는 '바쁜 것처럼 보이지만' 편안한 지연 헤드룸을 가집니다. 90% CPU에서 서버는 '생산적인 것처럼 보이지만' 작업 부하 범프 하나 떨어져 있습니다. 기하학적 진실: 곡선의 현재 y값이 아니라 기울기가 실제 위협입니다.
곡선 읽기
팀은 정상 상태에서 85% CPU 사용률로 서비스를 실행합니다. 현재 p99 지연은 200ms입니다. 그들은 더 이상 사용되지 않는 다른 서비스에서 작업을 통합하기 위해 30% 더 많은 트래픽을 추가하는 것을 고려하고 있습니다.
기울기, 절편, & 예측 원뿔
기울기에서 성장 읽기
수요 예측은 많은 경우 역사 데이터를 통해 올바른 선을 그리는 것으로 축소됩니다. 그 선의 기하학적 특성: 기울기, 절편, & 불확실성 원뿔은 전체 예측을 인코딩합니다.
선형 추세(y = mx + b): 짧은 윈도우 또는 진정한 선형 프로세스에 적합합니다. 기울기 m은 시간 단위당 성장률입니다. 절편 b는 시작 값입니다. 성장이 안정적일 때 유용합니다. 프로세스가 실제로 복합될 때 과소 추정하는 경향이 있습니다.
지수 추세(y = b × e^(mx)): 복합 성장에 적합합니다: 바이럴 채택, 사용자-네트워크 효과, 곱하기 계절성. 로그 스케일 y축에서 지수 성장은 선형이 되어 기울기 추정을 더 쉽게 만듭니다. 로그 스케일의 기울기 m은 시간 단위당 성장률입니다.
구간별 선형: 성장에 뚜렷한 레지스트림이 있을 때 적합합니다. 스타트업은 18개월 동안 천천히 성장하고, 6개월의 폭발적인 성장을 생산하는 바이럴 임계점을 가진 다음, 안정화할 수 있습니다. 세 개의 선형 세그먼트는 단일 곡선보다 더 잘 맞습니다.
예측 원뿔: 중앙 추정치 + 상한 및 하한, 미래로 넓혀지는 원뿔로 그립니다. 원뿔의 너비는 시간에 따라 증가합니다 불확실성이 복합되기 때문입니다. 4주 예측은 ±10% 경계를 가질 수 있습니다; 12개월 예측은 종종 ±50% 이상을 가집니다.
계절성 분해: 실제 수요는 추세 + 계절 주기 + 소음을 결합합니다. 통계 라이브러리(statsmodels, Prophet)는 계열을 이 세 구성 요소로 분해하여 추세를 계절 패턴과 별도로 투영할 수 있습니다. 기하학적으로 추세는 기본 드리프트, 계절성은 위의 주기적 반동, & 소음은 잔여 지터입니다.
추세 모델 선택
24개월의 월간 요청 볼륨이 있습니다. 월 1-12는 1M에서 2M으로 성장했습니다(선형 모습, +83K/월). 월 13-18은 2M에서 4M으로 성장했습니다(더 가파름, +330K/월). 월 19-24는 4M에서 12M으로 성장했습니다(훨씬 더 가파름). 마케팅은 월 13일에 바이럴 제품 기능 출시를 임계점을 구동하는 것으로 확인합니다.
용량 대 수요의 2D 기하학
모든 용량 팀이 사는 플롯
x축에 시간을 그립니다. y축에 수요와 용량을 두 개의 별도 선으로 그립니다. 시간의 모든 포인트에서 그들 사이의 수직 간격은 헤드룸입니다. 곡선 사이의 2D 영역은 헤드룸 봉투입니다.
세 가지 참고 모양:
- 건강한 봉투: 용량 선이 수요 선 위에 편하게 유지됩니다. 피크 동안 간격이 좁혀질 수 있지만 사라지지 않습니다. 봉투는 안전의 대역입니다.
- 닫는 봉투: 용량이 수요보다 느리게 성장합니다. 간격이 시간에 따라 좁혀집니다. 미래의 교점은 시스템이 헤드룸을 초과할 때입니다: 팀이 용량을 추가해야 하는 날짜.
- 반전 봉투: 수요가 용량을 초과합니다. 시스템이 사건 영토에 있습니다. 반전의 수직 크기는 어떻게든 제공되어야 하는 적자입니다(대기열 오버플로우, 오류율, 고객 영향).
표준 용량 계획 차트는 다음을 그립니다:
- 최근 수요 히스토리(실선 파란색)
- 경계가 있는 예측 수요(파선 + 음영 원뿔)
- 현재 용량(실선 녹색)
- 전달 날짜가 있는 계획된 용량 추가(단계 함수)
- 예측 수요가 현재 용량을 넘는 교점 날짜: 다음 프로비저닝의 마감일
시각적 의사결정 규칙: 용량 단계 함수가 항상 예측 원뿔의 상한 위에 있도록 합니다. 중앙 추정치로 프로비저닝하지 마십시오; 상한으로 프로비저닝합니다. 초과 프로비저닝의 비용은 유한합니다(일부 유휴 용량); 초과 프로비저닝의 비용은 무한합니다(손실된 사용자, 캐스케이드 실패, 평판 손상).
봉투 읽기
용량 차트는 다음을 보여줍니다: 현재 수요는 1,500 RPS 월 20% 성장입니다. 현재 용량은 2,500 RPS입니다. 새로운 서버 배치(+1,500 RPS 용량)는 8주에 도착합니다. 예측 원뿔은 8주 지평에서 ±15% 경계를 가집니다.
용량의 기하학: 마무리
미래를 예측하는 모양
당신은 용량 계획 아래에서 실행되는 네 가지 기하학적 구조를 걸었습니다:
- Little의 법칙(L = λ × W) 정상 상태 점유율을 정의하는 직사각형의 면적으로
- 대기열 곡선 80% 사용률에서의 팔꿈치, 높은 사용률에서의 비선형 비용을 인코딩
- 추세 기울기 & 예측 원뿔 역사 데이터를 실행 가능한 예측으로 변환
- 헤드룸 봉투 시간에 따른 용량 대 수요의 2D 플롯, 프로비저닝 마감일을 표시하는 교점 날짜
용량 계획은 시각적 핵심에서 한 곡선을 다른 곡선 위에 안전하게 유지하는 규율입니다. 숫자는 드레싱입니다; 모양은 진실을 전달합니다. 대기열 곡선을 올바르게 읽는 용량 엔지니어는 CPU 대시보드가 숨기는 문제를 시스템이 이미 타고 있을 때까지 잡을 것입니다.
용량 계획에 대한 동반 과정은 관행을 다루었습니다: 측정, 예측, 천장 테스트, 헤드룸, & 스케일링. 이 과정은 그 아래의 기하학을 다루었습니다. 함께, 그들은 놀라움 없이 확장되는 서비스를 실행하는 시각적 & 분석적 비계를 형성합니다.