본문 바로가기
IT KNOWLEDGE

부하테스트 도구 - Apache JMeter

by BTC_DIGIMON 2022. 6. 2.

안녕하세요 임오군란과 민씨의 임입니다.

 

이번 주제는 오픈소스 소프트웨어로 부하 테스트 기능 동작과 퍼포먼스, 성능을 측정하기 위해 만들어진 Jmeter에 대해 알아보도록 하겠습니다.

 


JMeter란?

 

JMeter는 웹 애플리케이션에 초점을 둔 다양한 서비스의 성능을 분석하고 측정하기 위한 부하테스트 도구입니다.

스테파노 마조끼가 개발하였으며, 현재 톰캣으로 잘 알려진 Apache JServ의 테스트를 위한 코드에서 시작되었고 이후 이 코드에 GUI와 기능을 추가하여 JMeter가 만들어졌습니다.

 

*성능테스트란

서비스 및 서비스 시스템의 성능을 확인하기 위해서 실제 사용환경과 비슷한 환경에서 테스트를 진행하는 것을 말합니다. 이를 통해서 응답시간(Response Time)과 처리량(Throughput), 병목구간 등을 확인할 수 있고, 성능테스트로 얻은 정보로 서비스나 서비스 시스템의 문제점을 확인하고 이를 개선하여 보완할 수 있습니다.


주요 기능

  1. 다양한 앱/서버/프로토콜 - Web, SOAP, REST, FTP, JDBC, LDAP, JMS, 메일, TCP, Java오프젝트 등을 테스트
  2. 다양한 응답 포맷을 지원 - HTML, JSON, XML 혹은 텍스트 응답 포맷으로부터 데이터를 추출

  3. 플러그인 확장 기능 - 플러그인을 통해 테스팅능력, 데이터분석, 가시화, 지속적인 통합 라이브러리확장을 제공

특징

  1. Multithreading 기능을 이용하여 동시에 많은 Thread를 발생시킬 수도 있으며 혹은 독립된 Thread를 연속적으로 발생시켜 테스팅합니다.

  2. HTTP나 FTP 서버뿐만 아니라 임의의 데이터베이스 쿼리도 성능 테스트할 수 있습니다.

  3. 높은 확장성과 GUI 환경으로 빠른 작업을 정확하게 할 수 있습니다.

Jmeter는 성능확인을 위한 부하테스트 도구이므로 Jmeter의 시스템 요구 사항에 대해서도 알아보겠습니다.

 

시스템 요구사항

JAVA Jmeter는 Java기반 응용 프로그램이며, Java Runtime을 실행 해야하며, Jmeter 4.0부터 Java8 이상 지원합니다.
CPU 코어가 4개 이상인 멀티코어 CPU를 제안하며, Jmeter는 다중 스레드를 많이 사용하므로 많은 CPU를 차지합니다.
메모리 16GB RAM을 제안하며, 추분한 동시 사용자를 시뮬레이트하고도 운영체제에 충분한 메모리를 확보 권장합니다.
디스크 Jmeter는 디스크에 크게 의존하지는 않지만 SSD 권장합니다.
네트워크 1Gbps LAN을 권장하며, Jmeter는 네트워크 대역폭에서 많은 동시 사용자 시뮬레이션을 합니다.

다음은 Jmeter 활용에 앞서 사용되는 용어에 대해서 알아보도록 하겠습니다.

 

사용자

  • Named User(가입자) : 해당 시스템을 사용할 수 있는 전체 사용자

  • Active User(서비스 사용자) : 해당 시점에 요청을 보낸 다음 응답이 올 때까지 대기하고 있는 사용자

  • Inactive User(서비스 대기자) : 요청에 대한 응답 결과 화면을 보고 있거나 다음 요청을 보내지 않고 대기하는 사용자

  • Concurrent User(동시 사용자) : 특정 시점에 시스템에 접속하여 사용하고 있는 사용자로 부하를 결정하는 중요한 수치(Active User + Inactive User)

시간

  • 응답시간(Response Time) : 사용자 요청시점부터 결괏값 시간

  • 대기시간(Think Time) : 사용자 요청 후 다음 요청하기까지 준비시간

  • 호출간격(Request Interval) : 사용자의 요청을 보낸 후 다음 요청을 할 때까지의 간격

트랜잭션, 처리량

  • 트랜잭션 - 업무 처리의 단위로 일반적으로 화면 조작 및 응답을 트랜잭션으로 정의, 특성에 따라 트랜잭션의 단위 및 범위를 정의하여 사용

  • 처리량 - 단위 시간당 처리되는 비즈니스 트랜잭션의 요청 건수, TPS값을 가장 많이 활용하며, TPM, TPH, OPS 등의 기준을 정의하기도 합니다.

  • 동시 사용자와 호출 간격을 이용하여, TPS를 예측할 수 있습니다.
    • TPS = Concurrent User / Request Interval

병목현상

  • 적은 수의 디스크에 많은 양의 요청이 들어와서 발생하는 현상으로, 시스템의 가용 자원 중 부하가 많이 걸려 전체 시스템 효율의 저하를 초래하는 현상을 말합니다.

 

JMeter 다운로드 링크 및 설치

http://jmeter.apache.org/download_jmeter.cgi

 

Apache JMeter - Download Apache JMeter

Download Apache JMeter We recommend you use a mirror to download our release builds, but you must verify the integrity of the downloaded files using signatures downloaded from our main distribution directories. Recent releases (48 hours) may not yet be ava

jmeter.apache.org

  • 사전에 Java8 이상 설치가 꼭 필요합니다.
  • 최신 버전의 .zip 파일을 다운로드 후 압축을 풀어줍니다.

'IT KNOWLEDGE' 카테고리의 다른 글

호스팅 과 클라우드  (0) 2022.06.03
Journaling  (0) 2022.06.02
가상화  (0) 2022.05.30
LFCS[Linux Foundation Certifications]에 대해 알아보자!  (0) 2022.05.30
OPENSSL 업데이트 소개  (0) 2022.05.27

댓글