JMeter 설치
공식 사이트
설치를 하고 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 성능 개선 (0) | 2024.12.02 |
[DB] SQL 코테 문제 풀어보기 (프로그래머스) (3) | 2024.11.29 |
[DB] SQL 문법 (1) | 2024.11.29 |