Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Table of Contents
maxLevel2


Apache JMeter 5.0 (Stress Test)

Win, Unix, Linux 등 OS에 상관없이 성능 및 부하를 테스트하고 그 결과를 도출하여 반영하고자 한다.

JMeter 에서는 여러 성능 테스트 기능이 존재, 다양한 관점에서 테스트를 진행하여 결과를 도출 할수 있다.

대표적 웹 브라우저를 통해 서비스를 사용하는 사용자 측명에서 서비스 장애를 파악하기 위한 HTTP Request 테스트를 진행한다.

성능 및 부하 스트레스 테스트를 통하여 정상적으로 응답할 수 있는 동시 최대 HTTP 요청의 수, 요청 상태에서의 응답시간, 물리적 하드웨어 상태 파악할 수 있다.

이 과정을 통해 HTTP 요청 부하에 따른 응답 속도를 측정하게 되면 이 결과는 웹 서비스(웹서버)의 임계치를 확인하는 중요한 자료로 쓰인다.

테스트 결과는 웹 서버의 가용 정도를 파악하거나 성능을 향상 시키기 위한 근거 자료로 활용 할 수 있을 것이다.

JMeter 란?

Apache 에서 개발된 기능 수행 테스트와 성능 측정을 위한 스트레슽 테스트 도구 오픈소스 이다.

JVM 이 설치돼 있는 어떤 환경에서도 구동이 가능하며 데스크톱 환경을 제공하기 때문에 직관적인 인터페이스를 통해 쉽게 사용 할 수 있다.

Apache JMeter는 웹 서비스를 비롯하여 파일, 서블릿, Perl 스크립트, Java 객체, 데이터베이스와 쿼리, FTP 서버 등 동적, 정적인 모든 자원을 테스트 할 수 있다.

Apache JMeter를 이용하면 서버나 네트웍, 객체에 대한 부하를 시뮬레이션 할 수 있고 다양한 부하 조건에서의 종합적인 성능을 분석 할 수 있다.

서버나 스크립트 등에 대한 동시 다발적인 부하 테스트를 하고 그 성능 분석 결과를 보기 쉽게 도표로 그릴 수도 있다

JMeter 기본 테스트 순서

Testplan는 최상위 디렉토리를 나타내며 Thread 는 한명의 유저를 의미하며, Thread Group 는 유저의 집합개념이다.

  1. TestPlan
  2. Thread Group
  3. Sample
  4. Listener
  5. Report

JMeter 기본 트리 구조

JMeter 는 테스트환경에 최상위 항목으로 TestPlab 이 존재.

JMeter 는 각각의 Element를 계층적으로 관리하기 위하여 Tree 구조를 이용함.

JMeter 는 테스트 하기전에 TestPlan 을 먼저 작성하고 진행이 된다.

 TestPlan 노드 아래 추가될 수 있는 Element 가 여러가지 존재하며, 기본적으로 테스트 하기위해서는 Thread Group 와 Listener 의 추가적 우선이다.

Thread Group 는 테스트의 가장 기본적인 요소이며, TestPlan 노드 아래 복수의 Group이 존재 할 수 있다.


시작하기전...


설치

Win : \apache-jmeter-5.0\bin\ 의 jmeter.bat 실행, CLI 기반에서는 \apache-jmeter-5.0\bin 의 jmeter.cmd 실행

UNIX/LINUX : \apache-jmeter-5.0\bin의 jmeter.sh 실행.

※ GUI 모드로 실행하면, 실 테스트의 경우 GUI모드로 실행하면 안된다는 권고사항 경고 메시지를 확인 할 수 있다.


실행


결과




Apache JMeter Plugin - Perfmon (Server Health Check & Performance Check)

JMeter 사용으로 Agent 서버 내 CPU & Memory 성능 측정을 하기 위해서는 Perfmon 플러그인 설치가 필요하다.


시작하기전

Perfmon 로 Health Check 를 위한 플러그인 다운로드

https://jmeter-plugins.org/?search=jpgc-perfmon


설치

JMeter 플러그인 설치는 매우 단순하다.

단, JMeter 플러그인을 사용하기 위해서는 JMeter Version 2.8 이상을 사용해야 한다.

JMeter 플러그인 공식 사이트

https://jmeter-plugins.org/

  1. 설치하고자 또는 필요한 플러그인 다운로드.
  2. 다운로드 된 플러그인 압축해제.
  3. JMeter 설치된 home 디렉토리 아래 /lib/ 폴더에 복사.


실행

서버가 CPU 및 Memory등 성능에 대한 사용량을 직접 보내지 못하며, 성능을 알 수 없다.

이를 위한 Win 또는 Linux 용 서버 Agent 배치 파일을 실행하여 Agent 설정이 필요하다.

ServerAgent 배치 파일은 검색을 통하여 쉽게 찾을 수 있다.

ServerAgent 2.2.3 배치 파일은 다음 위치에서 다운로드 할 수 있다.

https://github.com/undera/perfmon-agent

테스트 할 대상 서버에서이 Zip 파일 압축 해제 한 후 로그인 계정 Home 에서 실행.

Win 은 startagent.bat를 실행하며, Linux는 startagent.sh 를 실행 한다.

Code Block
themeRDark
# ./startAgent.sh --udp-port 0 --tcp-port 3450

tcp port 설정하지 않으면 기본 4444로 설정됨.

즉, JMeter 에서 TCP통신을 하기 위한 4444 포트로 설정 되어 있어야 함.

이 에이전트는 jmeter를 사용중인 Perfmon 플러그인에 정보를 전송하기 때문에 테스트 서버에서이 명령 창에서 로그를 확인 할 수 있다.

또한, 테스트 서버와 Jmeter 로그는 동일 하게 출력된다.



참조

https://sites.google.com/site/4loopsqa/home/jmeter/jmeter-performance-of-cpu-and-memory-usage-using-perfmon-plugin

https://stackoverflow.com/questions/20703045/how-can-i-install-serveragent-on-the-application-server-to-monitor-its-perform

https://www.blazemeter.com/blog/how-monitor-your-server-health-performance-during-jmeter-load-test

https://gerardnico.com/jmeter/serveragent