성능테스트 K6 결과 이해하기
K6를 이용한 성능 테스트 결과에는 다양한 지표가 포함되어 있습니다. 그러나 각 지표의 의미가 명확하지 않아 혼란스러울 수 있습니다. 이러한 지표들이 무엇을 나타내는지 하나씩 자세히 살펴보겠습니다.
Metric의 이해
Metric은 시스템이 테스트 조건에서 어떻게 동작하는지를 측정합니다. Metric은 다음의 네 가지 주요 유형으로 나뉩니다.
1) Counters : 값(value)들의 합계를 보여주는 지표
2) Gauges : 최솟값(min), 최댓값(max), 최신 값(latest)을 보여주는 지표
3) Rates : 발생한 빈도(퍼센트)
4) Trends : 여러 값에 대한 통계를 계산(예: 평균, 최빈값, 백분위수 등)
Standard built-in metrics
K6는 테스트에 사용하는 프로토콜과 상관없이 항상 다음과 같은 메트릭을 수집합니다.
Metric Name | Type | Description |
vus | Gauge | 현재 활성화된 가상 사용자 수 입니다. |
vus_max | Gauge | 최대 가능 가상 사용자 수 입니다. VU 자원은 미리 할당되어 부하 증가 시 성능에 영향을 주지 않도록 합니다. |
iterations | Counter | vus가 JS 스크립트를 실행한 총 횟수 입니다. |
iteration_duration | Trend | default/main function의 전체 반복을 한 번 완료하는데 소요된 시간 |
dropped_iterations | Counter | K6 v0.27.0에 도입된 VU lack 또는 lack of time으로 인해 시작할 수 없는 반복 횟수 |
data_sent | Counter | 전송된 데이터 양을 나타냅니다. |
data_received | Counter | 수신된 데이터의 양을 나타냅니다. |
checks | Rate | 성공적인 체크의 비율을 나타냅니다. |
HTTP-specific built-in metrics
이 메트릭은 테스트가 HTTP 요청을 수행할 때만 생성됩니다.
Metric Name | Type | Description |
http_req_blocked | Trend | 요청을 시작하기 전에 차단된 시간(TCP connection slot을 기다리는) |
http_req_connecting | Trend | 원격 호스트와 TCP 연결을 설정하는데 걸린 시간 |
http_req_duration | Trend | 요청에 소요된 총 시간입니다. 이는 http_req_sending + http_req_waiting + http_req_receiving과 같으며, 원격 서버가 요청을 처리하고 응답하는데 걸린 시간입니다.(DNS 조회/연결 시간 제외) |
http_req_failed | Rate | 실패한 요청의 비율입니다. |
http_req_receiving | Trend | 원격 호스트로부터 응답 데이터를 받는 데 걸린 시간입니다. |
http_req_sending | Trend | 원격 호스트로 데이터를 보내는 데 걸린 시간입니다. |
http_req_tls_handshaking | Trend | 원격 호스트와 TLS 세션을 핸드쉐이킹하는데 걸린 시간 입니다. |
http_req_waiting | Trend | 원격 호스트로부터 응답을 기다리는데 걸린 시간(aka. time to first byte) |
http_reqs | Counter | K6가 생성한 총 HTTP 요청 수 |
이 외에도 다양한 프로토콜에 따른 성능 지표가 있습니다. 더 자세한 내용은 다음 링크에서 확인 가능합니다.
https://grafana.com/docs/k6/latest/using-k6/metrics/reference/
Built-in metrics | Grafana k6 documentation
User-centered observability: load testing, real user monitoring, and synthetics Learn how to use load testing, synthetic monitoring, and real user monitoring (RUM) to understand end users' experience of your apps. Watch on demand.
grafana.com
'테스트' 카테고리의 다른 글
[부하테스트] K6를 사용한 부하테스트 진행하기 (0) | 2025.01.03 |
---|