JMeter 설치
공식 사이트
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`로 재시작
'CS > DB' 카테고리의 다른 글
| [DB] DB 서버 부하 분산 (HAProxy) (0) | 2024.12.03 |
|---|---|
| [DB] 재해 복구(DR) / DB 서버 Replication 설정 / 미러 사이트 구성 실습 (0) | 2024.12.03 |
| [DB] SQL 성능 개선 (1) | 2024.12.02 |
| [DB] SQL 코테 문제 풀어보기 (프로그래머스) (3) | 2024.11.29 |
| [DB] SQL 문법 (1) | 2024.11.29 |
JMeter 설치
공식 사이트
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`로 재시작
'CS > DB' 카테고리의 다른 글
| [DB] DB 서버 부하 분산 (HAProxy) (0) | 2024.12.03 |
|---|---|
| [DB] 재해 복구(DR) / DB 서버 Replication 설정 / 미러 사이트 구성 실습 (0) | 2024.12.03 |
| [DB] SQL 성능 개선 (1) | 2024.12.02 |
| [DB] SQL 코테 문제 풀어보기 (프로그래머스) (3) | 2024.11.29 |
| [DB] SQL 문법 (1) | 2024.11.29 |
