CS/DB

[DB] JMeter 부하 테스트

셰욘 2024. 12. 2. 17:01
728x90

JMeter 설치

공식 사이트

https://jmeter.apache.org/

 

Apache JMeter - Apache JMeter™

Apache JMeter™ The Apache JMeter™ application is open source software, a 100% pure Java application designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to oth

jmeter.apache.org

 

 

설치를 하고 bin 폴더에 jmeter.bat 파일을 실행하면

JMeter 프로그램 창이 뜬다.

 

 

 

jmeter폴더 lib 폴더에 mariadb jar 파일 붙여넣기

옮겨 넣으면 JMeter가 DB로 연결할 수 있게 된다.

 


 

Thread Group 설정하기

Edit - Add - Threads(User) - Thread Group 으로 그룹 추가하기

 

 

Number of Threads (users) : 접속자 수

  • 크면 클수록 서버가 힘들어짐

Ramp-up period (seconds) : 접속자가 접속하는 시간

  • 짧을수록 서버가 더 힘들어짐

Loop Count : 반복 횟수

 


JDBC Connection Configuration 설정

Thread Group 우클릭 -  Add -Configure Element ->  JDBC Connection Configuration

 

 

 

Variable Name for created pool : pool 이름

 

Validation Query : select 1
Database URL : jdbc:mariadb://[DB 서버 IP 주소]:3306/[DB 이름]
JDBC Driver class : org.mariadb.jdbc.Driver (Driver 클래스)
Username : DB 서버에 접속할 ID
Password : DB 서버에 접속할 PW

 


JDBC Request 설정

Thread Group 우클릭 -> Add -> Sampler -> JDBC Request

 

 

Variable Name of Pool declared in JDBC Connection Configuration : dbpool (아까 설정한 pool 이름)
Query Type : Select Statement
Query : SELECT * FROM member; (돌려볼 쿼리)


View Request Tree 설정

Test Plan 우클릭 -> Listener -> View Result Tree 

 

Summary Report 설정

Test Plan 우클릭 -> Listener -> Summary Report

 

 

 

설정이 끝나면 왼쪽 탭에 이렇게 띄워져 있다.

 

 


부하 테스트 실습

위쪽 실행 버튼을 누르면 아까 입력한 쿼리가 실행된다.

초록색으로 뜬 거면 통신이 잘 되는 것이다.

 

 

 

지금까지 한 것들을 지우고 싶으면 빗자루 모양 버튼을 누르면 된다.

설정 후 지우고 실행하고 설정 후 지우고 실행하고 반복

 

사용자를 1000 으로 늘렸더니 안 되는 요청도 있다.

 

 

확인해보니 Too many connections가 뜨는 것을 확인할 수 있다.

 

 

사용자가 너무 많이 접속하게 되면 DB 서버 메모리가 점점 줄어들다가 없어지기 때문에 다른 사용자와 통신할 수 없게 된다.

 

 

 

💡JMeter가 먹통일 때
Jmeter.bat 파일을 메모장으로 연 후 아래 부분을 4g - 8g - 1g로 설정한다.
더 많은 메모리를 할당하는 코드

 

 

Max 가 최대 걸리는 시간

=> 22223이면 22초 정도 됨,,,, 넘 느리다

 

 


서버 최대 접속자 수 설정

SQL로도 할 수 있지만, 서버의 설정은 SQL로 하기 보다는 서버의 설정 파일을 수정하는 게 좋다.

vi /etc/mysql/mariadb.conf.d/50-server.cnf

 

max_connections = 200 으로 바꿔준 후 주석 처리를 제거해준다.

 

설정했으면 `systemctl restart mariadb`로 재시작

728x90