본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

강의 요약

오늘 강의에서는 성능 테스트 도구인 JMeter를 이용해서 spring mvc와 webflux 서버의 성능비교를 진행했다. JMeter는 성능 테스트 실행 후 다양한 방식으로 결과를 분석할 수 있으며, 리스너와 대시보드를 통해 응답 시간, 처리량, 에러율 등의 메트릭을 확인할 수 있다.

 

 

JMeter 결과 분석 전략

성능 테스트 결과는 두 가지 출처에서 수집할 수 있다.

 

서비스 측면

  • JVM 메모리 사용량
  • 활성 스레드 수
  • DB 트랜잭션 실행 시간
  • 다운스트림 API 응답 시간

 

클라이언트 측면 (JMeter)

  • 전체 응답 시간
  • 실패한 요청 비율
  • 초당 요청 수 (TPS)
  • 처리량 (Throughput)

 

JMeter 결과 분석 방법 비교

JMeter는 클라이언트 관점의 메트릭을 수집하며, 이를 분석하는 방법은 크게 세 가지로 구분된다. 각 방법은 상황에 따라 적합한 선택이 다르며, 복잡도와 요구사항을 고려하여 결정해야 한다.

  • JMeter 리포트 (HTML Dashboard 도구 포함)
  • 플러그인
  • 호스팅 결과 서비스

 

호스팅 결과 서비스

JMeter는 GraphiteBackendListenerClient와 InfluxDBBackendListenerClient를 제공하여 외부 백엔드로 메트릭을 전송할 수 있다. 이를 통해 결과를 실시간으로 외부 DB에 저장하고, BlazeMeter Sense, Grafana, Taurus 같은 서비스로 대시보드를 생성할 수 있다.

 

장점

  • 테스트 실행 이력 보관 및 비교 가능
  • 여러 버전, 여러 시점의 테스트 결과 비교
  • 실시간 모니터링

단점

  • 복잡도, 위험성, 비용 증가
  • 무료 클라우드 서비스는 지속성 보장 불가 (BlazeMeter Sense가 유료 전환)
  • 자체 호스팅 시 DB, Grafana 등 여러 컴포넌트 설치 및 관리 필요

 

JMeter 플러그인

JMeter 커뮤니티에서 제공하는 다양한 플러그인을 통해 결과를 분석할 수 있다.

  • JMeterPluginsCMD: JTL 파일에서 그래프 생성하는 커맨드라인 유틸리티
  • Graphs Generator Listener: 테스트 종료 시 다양한 그래프 자동 생성 (Active Threads Over Time, Response Times Over Time, TPS 등)
  • JWeter: 결과 파일 분석 및 시각화 도구
  • JMeter Result Analysis Plugin: Maven 플러그인으로 결과 XML 파싱 및 차트 생성
  • UbikLoadPack: 브라우저에서 CLI 테스트 모니터링 가능

 

JMeter Report Listeners

테스트 실행 중 데이터를 수집하고 다양한 형식으로 표시하는 리스너를 제공한다. 리스너는 샘플러, 스레드 그룹, 테스트 플랜 단위로 범위를 설정할 수 있다.

 

View Results 계열

  • View Results Tree: 모든 요청을 리스트로 표시
  • View Results in Table: 테이블 형태로 표시, 컬럼별 정렬 가능
  • 개별 요청 디버깅에 적합하나 부하 테스트 시 메모리 사용량 주의

 

Aggregate 계열

  • Aggregate Report: Average, Median, 90/95/99% Line, Error %, Throughput 등 통계 테이블
  • Aggregate Graph: 통계 데이터를 그래프로 표시
  • 기본 그래프는 시각화 품질이 제한적

 

Response Time Graph

  • 응답 시간의 시간대별 변화 추적
  • Interval 설정으로 그래프 세밀도 조절 (50ms, 1초, 5초 등)

 

Graph Results

  • Average, Median, Deviation, Throughput를 시간에 따라 표시

 

JMeter Dashboard Report GUI

JMeter 기본 그래프는 시각화 품질이 제한적이기 때문에, 더 나은 시각화를 위해 HTML 대시보드 GUI를 제공한다. 기본적으로 생성되지 않으므로 별도 절차가 필요하다. 테스트 완료 후에만 생성 가능하다는 제약이 있다.

 

생성 절차

  1. Simple Data Writer 리스너를 추가하여 결과를 파일로 저장
  2. Properties 파일 생성 (timestamp_format, threads 등 설정)
  3. Tools 메뉴에서 'Generate HTML Report' 선택
  4. JTL 파일, properties 파일, 출력 폴더 지정
  5. 생성된 index.html을 브라우저에서 확인

 

구성 요소

  • Summary Page: Request Summary 파이 차트, Application Performance Index 테이블, 통계 테이블
  • Over Time Charts: Active Threads, Response Times, Latencies, Bytes Throughput
  • Throughput Charts: TPS, Time vs Threads, Transaction Throughput vs Threads
  • Response Times Charts: Distribution, Percentiles

 

참고 출처

 

 

시작 시간

 

종료 시간
학습 인증 - 디지털 필기
수강 인증

+ Recent posts