[web-services] P99 지연이란 무엇입니까?

P99 지연은 무엇을 의미합니까? 나는 응용 프로그램 성능에 대한 토론에서 이에 대해 계속 들었지만 이에 대해 이야기 할 온라인 리소스를 찾을 수 없습니다.



답변

그것은의 99 번째 백분위 수 . 이는 요청의 99 %가 주어진 지연 시간보다 빠르다는 것을 의미합니다. 즉, 요청의 1 % 만 느려질 수 있습니다.


답변

유추를 통해 설명 할 수 있습니다. 만약 100 명의 학생이 레이스를 진행하고 있다면 99 명의 학생이 “대기 시간”에 레이스를 완료해야합니다.


답변

서비스의 성능 데이터를 수집하고 있고 아래 표가 결과 모음이라고 가정합니다 (대기 시간 값은 아이디어를 설명하기 위해 허구입니다).

Latency    Number of requests
1s         5
2s         5
3s         10
4s         40
5s         20
6s         15
7s         4
8s         1

서비스의 P99 지연 시간은 7 초입니다. 요청의 1 %만이 그보다 오래 걸립니다. 따라서 서비스의 P99 지연 시간을 줄일 수 있다면 성능이 향상됩니다.


답변

여기 에서 예를 들어 보겠습니다 .

Request latency:
    min: 0.1
    max: 7.2
    median: 0.2
    p95: 0.5
    p99: 1.3

따라서 웹 요청의 99 %에서 발견 된 지연 시간은 1.3ms (ms / 마이크로 초는 구성된 시스템 지연 측정 값에 따라 다름) 이하였습니다. @tranmq가 서비스의 P99 지연 시간을 줄이면 성능을 높일 수 있다고 말한 것처럼.

또한 p95에 주목할 가치가 있습니다. 요청이 적기 때문에 p99가 p95보다 비용이 많이들 수 있습니다. 예) 캐시를 빌드하는 초기 요청, 클래스 객체 준비, 스레드 초기화 …

드디어; 측정시 약 1 %의 노이즈 (네트워크 정체, 중단, 서비스 저하 등)가 발생할 수 있으므로 p99 지연 시간은 사실상 최악의 경우를 잘 대표합니다. 그리고 거의 항상 우리의 목표는 p99 지연 시간을 줄이는 것입니다.


답변