본문 바로가기
한화시스템 Beyond SW Camp/기반기술

[Database] 부하 테스트 도구 (JMeter)

by taeh00n 2024. 12. 3.

※ 이 글에서 다룬 기반기술, 프론트엔드, 백엔드, 데브옵스 등 풀스택 개발 지식은 모두 한화시스템 Beyond SW Camp 12기에서 배운 내용을 복습한 것입니다.

 

1. JMeter 설치

https://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

 

JMeter 설치

해당 파일을 다운 후 압축을 풀면된다.

JMeter 실행 파일

압축을 푼 파일의 bin 밑에 jmeter.bat 파일을 실행하면 JMeter가 실행된다.

 

2. DB 커넥터 연결

JMeter는 기본적으로 DB와 직접적인 연결을 지원하지 않기 때문에 DB 부하 테스트를 하려면 JDBC 커넥터를 다운받아야 한다.

 

나는 강사님이 주신 mariadb-java-client-3.3.3.jar 를 다운받았다.

 

다운받은 파일은 lib 파일 밑에 넣어주었다.

 

JMeter 초기화면

 

3. JMeter 설정

Test Plan -> Add -> Threads -> Thread Group
Test Plan -> Add -> Threads -> Thread Group

Number of Thread : 접속자 수 100

Ramp-up period : 접속자가 접속하는 시간 1

Loop Count : 반복 횟수 1

 

나는 접속자 수를 100으로 해보았다.

 

 

Thread Group -> Add -> Config Element -> JDBC Connection Configuration
Thread Group -> Add -> Config Element -> JDBC Connection Configuration

Variable Name for created pool : dbpool

데이터베이스 연결 풀 객체를 참조할 변수 이름을 설정

● Validation Query : select 1

데이터베이스 연결이 유효한지 확인하는 간단한 테스트 쿼리

  Database URL : jdbc:mariadb://[DB 서버 IP 주소]:3306/[DB 이름]

MariaDB 서버와 연결할 URL을 설정

 

 

  JDBC Driver class : org.mariadb.jdbc.Driver

MariaDB에 접속할 JDBC 드라이버 클래스를 설정

  Username : DB 서버에 접속할 ID

  Password : DB 서버에 접속할 PW

 

 

Thread Group -> Add -> Sampler -> JDBC Request

 

 Variable Name of Pool declared in JDBC Connection Configuration : dbpool

이전에 설정한 JDBC 연결 풀의 변수 이름 (dbpool)을 입력 이 JDBC 요청이 사용할 연결 풀을 지정

 Query Type : Select Statement

실행할 SQL 쿼리 유형을 지정

Query : SELECT * FROM member;

실행할 SQL 쿼리를 작성

 

 

 

Test Plan -> Add -> Listener -> View Results Tree
View Results Tree 화면

 

Test Plan -> Add -> Listener -> Summary Report
Summary Report 화면

 

 

4. 부하 테스트

부하 테스트 시작

위의 버튼을 누르면 내가 해놓은 설정을 바탕으로 부하테스트가 실행된다.

 

실행 결과

위에서 설정한대로 100명의 사용자가 동시에 SQL 쿼리문을 요청했을때의 부하 테스트이다. 요청이 모두 누락없이 잘 전송된 것을 볼 수 있고 오류도 0퍼센트이다.

 

 

Clear All

위의 버튼을 누르면 이전에 나왔던 실행결과를 모두 지우고 새로 실행할 수 있다.

 

부하를 높인 후 실행결과

부하를 높여보니 전송에 실패하는 요청도 있고 에러율도 높아진 것을 확인할 수 있다.

 


서버 최대 접속자 수 수정(리눅스)

파일 수정
/etc/mysql/mariadb.conf.d/50-server.cnf 
맨 앞에 주석은 제거하고 숫자 변경해서 저장
max_connections 	= 200 
systemctl restart mariadb