Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Tags
more
Archives
Today
Total
관리 메뉴

siklog

[DB/MySql] MySql 부하테스트 방법 본문

클라우드

[DB/MySql] MySql 부하테스트 방법

ms 2022. 6. 6. 23:24

이번 포스팅에서는 MySql에서 사용할 수 있는 부하 테스트 방법 중 mysqlslap 과 sysbench 를 이용하는 방법에 대해 소개해 보려고 한다.

 

해당 방법들은 일반적으로 VM에 DB를 올려 사용하는 설치형 DB에서 활용해 볼 수 있다.

다만, 클라우드 환경같이 완전관리형으로 제공하는 DB의 경우에는 OS단에 대한 접근이 불가능하기 때문에 해당 방법을 사용할 수는 없다.

 

MySql 부하테스트 – mysqlslap

 

MySql에서는 간단한 부하테스트를 할 수 있도록 mysqlslap 유틸리티를 제공하고 있다.

 

* mysqlslap 사용법

mysqlslap [option]의 형식으로 사용이 가능하며, 옵션 중 --create or --query는 SQL문법을 포함한 스트링 문자열이거나 파일이여야 한다.
만약 특정 파일일 경우 그 안에는 sql문법이 라인으로 되어 있어야하고, 파일 안에는 주석없이 순수 내용만 있어야 한다.
리눅스의 다른 명령어들 사용법과 같이 옵션에 관한 내용은 –help에서 참고 할 수 있다.

mysqlslap --help

 

* mysqlslap 진행

명령어를 실행하면 3가지 단계로 진행된다.
1) 스키마,테이블 그리고 선택사항으로 프로시저나 테스트에 필요한 데이터를 만들고, 이때 하나의 클라이언트를 사용한다.
2) 부하테스트를 진행 (이때 많은 클라이언트가 접속함)
3) 정리단계에서 하나의 접속만 남기고 접속 종료와 테이블이 삭제된다.

위는 50개의 클라이언트가  200번의 쿼리를 수행하는 명령을 실행 시켰고, 테이블을 생성하고 23이라는 데이터를 삽입 후 조회하는 mysqlslap이다.
(실행 후에는 벤치 결과가 출력됨)

 

 

MySql 부하테스트 – sysbench

 

별도 유틸리티를 설치해 mysqlslap보다 더 다양한 부하테스트를 해볼 수 있는 sysbench같은 유틸리티를 이용해볼 수도 있다.
MySQL/MariaDB 데이터베이스에서 주로 사용하는 오픈 소스 벤치마킹 프로그램 이며 추가적으로 CPU에서 디스크 I/O, 메모리 성능 등의 시스템 테스트를 할 수 있다.

 

* sysbench 사용법

기본적으로 sysbench [option].....  [testname] [command] 형식으로 사용하며, –-help에서 옵션에 관한 상세 내용을 확인할 수 있다.

sysbench --help

sysbench 는 명령어는 3가지로 구분된다.  

  • prepare : 테스트 데이터를 생성하는 과정  
  • run : 실제 테스트를 실행 (oltp-read-write, oltp-read-only 등)  
  • cleanup : 테스트 데이터를 삭제하는 과정

prepare -> run -> cleanup 순서로 진행된다.

 

* sysbench 테스트 진행

  • 각각  5444444 건의 데이터를 갖고 있는 테이블 2개 생성
  • 생성한 2개 테이블에 대해 4개의 thread로 read_only 트랜잭션 수행

1) Sysbench 용 Schema 와 User 생성
2) Sysbench 실행
3) Sysbench 결과

Comments