팬아웃 꼬리지연 계산기
요청 하나가 N갈래로 흩어지고 모두 돌아와야 응답할 때 전체 p99가 얼마나 나빠지는지 계산합니다. 하위 서비스에 필요한 백분위를 역산하고, 헤지 요청으로 꼬리를 자를 때의 효과와 추가 부하도 함께 냅니다.
모두 돌아와야 응답할 수 있는 갈래의 수입니다.
이 시간 안에 답이 없으면 같은 요청을 하나 더 보냅니다. 0이면 쓰지 않습니다.
N = 100 일 때 전체 p99
396.4ms
하위 p99 100ms의 3.96배 · 요청의 63.4%가 하위 p99를 넘깁니다
하나라도 느리면 전체가 느리다
백분위별로
| 전체 백분위 | 하위 하나 | N개 모두 기다림 | 필요한 하위 분위 |
|---|---|---|---|
| p50 | 10ms | 114.4ms | p99.3092 |
| p90 | 35.6ms | 209.8ms | p99.8947 |
| p95 | 50.9ms | 257.9ms | p99.9487 |
| p99 | 100ms | 396.4ms | p99.99 |
| p99.9 | 213ms | 681.2ms | p99.999 |
N이 늘면 얼마나 나빠지나
헤지 요청으로 꼬리 자르기
이 계산의 한계
사용 방법
- 1하위 호출 수 N을 넣습니다. 모두 돌아와야 응답할 수 있는 갈래의 수입니다.
- 2하위 서비스 하나의 p50과 p99를 넣으면 지연 분포가 정해집니다.
- 3전체 p99가 하위 p99의 몇 배가 되는지 확인합니다.
- 4«필요한 하위 분위» 칸을 보십시오. p99가 아니라 그보다 훨씬 바깥이어야 합니다.
- 5헤지 대기시간을 넣어 꼬리가 얼마나 잘리고 부하가 얼마나 느는지 견줍니다.
자주 묻는 질문
하나라도 느리면 전체가 느리기 때문입니다. 하위가 서로 독립이라면 전체가 빠를 확률이 (1 − q)^N으로 줄어듭니다. q = 1%, N = 100이면 0.99¹⁰⁰ = 36.6%만 남으므로 요청의 63%가 하위 p99를 넘깁니다. 하위의 «백 번에 한 번»이 전체에서는 «세 번에 두 번»이 되는 셈입니다.
전체 p99를 맞추려면 하위는 0.99^(1/N) 분위여야 합니다. N = 100이면 p99.99, N = 1000이면 p99.999입니다. 곧 하위의 p99를 다듬는 것으로는 부족하고 그보다 훨씬 바깥 꼬리를 봐야 합니다. 팬아웃이 큰 시스템에서 p99가 아니라 p99.9나 p99.99를 지표로 삼는 이유가 이것입니다.
지연 분포가 있어야 합니다. 이 계산기는 로그정규분포를 쓰며, 넣으신 p50과 p99 두 점으로 모수를 정합니다. 지연시간은 음수가 없고 오른쪽으로 길게 끌리는데 그 모양에 잘 맞기 때문입니다. N개 중 가장 느린 것의 분포는 F(t)^N이므로 전체의 P 분위수가 F⁻¹(P^(1/N))이 됩니다.
정해 둔 시간 안에 답이 오지 않으면 같은 요청을 하나 더 보내고 먼저 오는 쪽을 쓰는 방법입니다. 지연이 min(T₁, 대기시간 + T₂)가 되어 꼬리가 크게 잘립니다. 대가는 부하이며, 추가로 나가는 비율이 정확히 «대기시간을 넘길 확률»이므로 대기시간을 하위 p95에 맞추면 부하가 5%만 늡니다.
짧게 잡을수록 꼬리가 더 잘리지만 부하가 그만큼 늡니다. 하위 p95~p99 사이에 두면 부하는 1~5% 늘면서 꼬리는 눈에 띄게 줄어드는 것이 보통입니다. 이 계산기에서 대기시간을 바꿔 가며 «줄어든 비율»과 «늘어나는 부하»를 견줘 보십시오. 다만 부하가 늘면 하위 서비스가 더 느려질 수 있는데, 그 되먹임은 이 계산에 들어 있지 않습니다.
실제로는 같은 네트워크, 같은 스위치, 같은 전원, 같은 배포를 공유하므로 함께 느려질 때가 많습니다. 상관이 있으면 최댓값의 꼬리가 이 계산보다 얇아지지만, 공통 원인 자체가 자주 일어나면 전체가 통째로 느려집니다. 그래서 이 값은 «독립일 때의 값»으로 읽으시고, 실측과 견줘 보정하는 편이 좋습니다.
이 계산기는 «모두 돌아와야 응답할 수 있는» 경우입니다. 90%만 모이면 응답하는 설계라면 최댓값이 아니라 상위 순서통계량을 봐야 하므로 훨씬 나아집니다. 실제로 팬아웃이 큰 시스템이 부분 결과로 응답하는 이유가 이것입니다.
전송되지 않습니다. 계산은 모두 브라우저 안에서 이루어지며 입력한 값은 이 기기에만 남습니다.
알아두면 좋은 점
- 하위 호출이 서로 독립이라고 가정합니다. 함께 느려지는 공통 원인은 반영되지 않습니다.
- 하위 지연을 로그정규분포로 봅니다. 재시도나 타임아웃 때문에 봉우리가 둘인 분포에는 잘 맞지 않습니다.
- «모두 돌아와야 응답한다»는 경우입니다. 일부 결과로 응답하는 설계는 이보다 훨씬 나아집니다.
- 헤지로 늘어난 부하가 하위 서비스를 더 느리게 만드는 되먹임은 계산에 들어 있지 않습니다.
함께 보면 좋은 도구
마지막 검증: 2026년 9월 2일 · 결과는 참고용 추정치입니다.