성능 지표(특히 latency)를 보다 보면 p50, p90, p95, p99 같은 백분위수(Percentile)를 자주 보게 된다.
평균(latency avg)은 일부 느린 요청에 쉽게 끌려가기도 하고, 반대로 “대부분은 빠른데 일부만 매우 느린” 상황을 잘 드러내지 못할 때가 있다. 백분위수는 응답 시간 분포를 잘라서 보여주기 때문에, 서비스가 실제로 어느 정도까지 느려질 수 있는지(tail latency)를 파악하기 좋다.
P90 (90th Percentile)
P90은 데이터를 작은 값에서 큰 값으로 정렬했을 때, 전체의 90%가 이 값보다 작거나 같은 지점을 의미한다. 즉 “상위 10%의 느린 요청을 제외하면, 나머지 90%는 이 시간 안에 끝난다”는 뜻이다.
P95 (95th Percentile)
P95는 전체의 95%가 이 값보다 작거나 같은 지점이다. 현업에서 흔히 “대부분의 사용자가 체감하는 응답 시간”을 볼 때 p95를 많이 본다.
p99도 자주 같이 보는데, p99는 상위 1%의 느린 요청(tail)을 보여줘서 “가끔씩 터지는” 성능 문제를 잡을 때 유용하다.
정리하면:
- p50: 중앙값(전반적인 평균 체감)
- p90/p95: 대부분 사용자가 겪는 응답 시간
- p99: tail latency(드물게 매우 느린 요청)