본문 바로가기
아직 카테고리 미정

성능테스트 k6 결과 내역을 이해해보자.

by simplify-len 2021. 7. 9.

image-20210709042711826

공식 사이트 중에서도 k6 의 결과를 설명해주는 페이지 를 보고 이해하고자 했습니다.

data_received..............: 148 MB 2.5 MB/s
data_sent..................: 1.0 MB 17 kB/s
http_req_blocked...........: avg=1.92ms   min=1µs      med=5µs      max=288.73ms p(90)=11µs     p(95)=17µs
http_req_connecting........: avg=1.01ms   min=0s       med=0s       max=166.44ms p(90)=0s       p(95)=0s
http_req_duration..........: avg=143.14ms min=112.87ms med=136.03ms max=1.18s    p(90)=164.2ms  p(95)=177.75ms
http_req_receiving.........: avg=5.53ms   min=49µs     med=2.11ms   max=1.01s    p(90)=9.25ms   p(95)=11.8ms
http_req_sending...........: avg=30.01µs  min=7µs      med=24µs     max=1.89ms   p(90)=48µs     p(95)=63µs
http_req_tls_handshaking...: avg=0s       min=0s       med=0s       max=0s       p(90)=0s       p(95)=0s
http_req_waiting...........: avg=137.57ms min=111.44ms med=132.59ms max=589.4ms  p(90)=159.95ms p(95)=169.41ms
http_reqs..................: 13491  224.848869/s
iteration_duration.........: avg=445.48ms min=413.05ms med=436.36ms max=1.48s    p(90)=464.94ms p(95)=479.66ms
iterations.................: 13410  223.498876/s
vus........................: 100    min=100 max=100
vus_max....................: 100    min=100 max=100

목표

내용을 읽는 사람은 각각의 matrics 를 이해할 수 있어야 한다.

위 결과를 보고싶은 사람은 k6 run github.com/k6io/k6/samples/http_get.js 를 실행해보면 된다.

https://k6.io/docs/using-k6/metrics#built-in-metrics

Matrics의 Type은 총 4가지로 나눠진다.

  • 단순한 숫자를 더하는 Counter
  • min,amx, last value가 보여지는 Gauge
  • 퍼센트를 표현하는 Rate
  • 마지막으로, 추가 값(최소, 최대, 평균 및 백분위수)에 대한 통계를 계산할 수 있는 Trend

아래는 k6 가 항상 수집하는 내역이다.

Matric Name Type Description
vus Gauge 현재 활성화된 사용자 유저
vus_max Gauge 가능한 최대 가상 사용자 수(로드 레벨을 확장할 때 성능에 영향을 미치지 않도록 VU 리소스가 미리 할당됨)
iterations Counter 테스트에서 Vu 가 JS 스크립트를 실행한 총 횟수
iteration_duration Trend default/main function 의 전체 반복을 한 번 완료하는데 소요된 시간
dropped_iterations Counter k6 v0.27.0 에 도입된 VU lack 또는 lack of time 으로 인해 시작할 수 없는 반복 회수
data_received Counter 데이터를 전달받은 양
data_sent Counter 데이터를 전달한 양
checks Rate 성공적으로 체크된 Rate

HTTP-specific 에 관련된 Build-in metrics

Matric name Type Description
http_reqs Counter 총 얼마나 많은 HTTP requests 를 k6 에서 생성했는지 횟수
http_req_blocked Trend 요청을 시작하기 전에 차단된 시간(TCP connection slot 을 기다리는) 단위: float
http_req_connecting Trend 원격 호스트에 대한 TCP 연결을 설정하는데 소요된 시간. 단위: float
http_req_tls_handshaking Trend 원격 호스트와의 핸드셰이킹 TLS 세션에 소요된 시간
http_req_sending Trend 원격 호스트에 데이터를 보내는데 소요된 시간
http_req_waiting Trend 원격 호스트로부터의 응답을 대기하는 데 소요된 시간(a.k.a. "time to first byte", or "TTFB").
http_req_receiving Trend 원격 호스트로부터 응답 데이터를 수신하는 데 소요된 시간
http_req_duration Trend 요청의 총 시간입니다. 이는 http_req_sending + http_req_waiting + http_req_receiving과 같습니다(즉, 초기 DNS 조회/연결 시간 없이 원격 서버가 요청을 처리하고 응답하는 데 소요된 시간).
http_req_failed Rate The rate of failed requests according to setResponseCallback.

https://k6.io/docs/

https://github.com/k6io/k6

댓글