본문 바로가기
MySQL

MySQL benchmark tool ( MySQL 성능 테스트 툴 ) DBT2

by 타마마임팩트_쫀 2020. 3. 19.

mysql 벤치 마크 툴인 DBT2에 대해서 설정하고, 서버의 성능에 대하여 측정 해본다.

테스트에 사용된 DB : MySQL 5.7.28

DBT2 : dbt2-0.37.50.15

DBT2의 다운로드 사이트 : https://dev.mysql.com/downloads/benchmarks.html

 

MySQL :: MySQL Benchmark Tool

DBT2 Benchmark Tool The DBT2 Benchmark Tool can be used to run automated benchmarks for MySQL and MySQL Cluster. It supports three types of benchmarks: DBT2 SysBench flexAsynch It has been primarily used on Linux x86_64 platforms, but occasional benchmarks

dev.mysql.com

해당 사이트에서 툴을 다운로드 받은 후 테스트 할 서버로 업로드를 한다.

해당 툴의 압축을 해제 한다.

> cd cd /data/mytmp
> tar xzvf dbt2-0.37.50.15.tar.gz

해제한 툴을 설치 한다.

> cd /data/mytmp/dbt2-0.37.50.15/
> ./configure --with-mysql=/db/mysql/

> make

데이터 생성 및 데이터 로딩

> mkdir -p /data/mytmp/dbt2-0.37.50.15/output
> ./src/datagen -w 30 -d /data/mytmp/dbt2-0.37.50.15/output --mysql

mysql 에서 테스트에 사용할 유저 생성

> create user test@'localhost';
> grant all privileges on *.* to test@'localhost';

> create user test2@'%' identified by 'test2';
> grant all privileges on *.* to test2@'%';
> create user test2@'localhost' identified by 'test2';
> grant all privileges on *.* to test2@'localhost';

mysql 에 테스트 데이터 생성

> ./scripts/mysql/mysql_load_db.sh --mysql-path /db/mysql/bin/mysql --database dbt2 --path /data/mytmp/dbt2-0.37.50.15/output --socket /tmp/mysql.sock --user test --verbose

위와 같이 에러가 발생하는데 스크립트 상에 오류와 데이터에 문제가 좀 있어 수정이 필요하다.

mysql_load_db.sh 파일을 열어 다음 부분을 찾아 수정한다.

변경 전     command_exec "$MYSQL $DB_NAME -e \"LOAD DATA $LOCAL INFILE \\\"$DB_PATH/$FN.data\\\" \
              INTO TABLE $TABLE FIELDS TERMINATED BY '\t' ${COLUMN_NAMES} \""
젼경 후     command_exec "$MYSQL $DB_NAME -e \"LOAD DATA LOCAL INFILE \\\"$DB_PATH/$FN.data\\\" \
              INTO TABLE $TABLE character set latin1 FIELDS TERMINATED BY '\t' ${COLUMN_NAMES} \""

그리고 다시 수행

> ./scripts/mysql/mysql_load_db.sh --mysql-path /db/mysql/bin/mysql --database dbt2 --path /data/mytmp/dbt2-0.37.50.15/output --socket /tmp/mysql.sock --user test --verbose

프로시저 생성

> ./scripts/mysql/mysql_load_sp.sh --database dbt2 --sp-path ./storedproc/mysql/ --client-path /db/mysql/bin/ --user test2 --password test2

벤치마크 툴 수행

> ./scripts/run_mysql.sh -u test2 --password test2 -d dbt2 -s /tmp/mysql.sock -w 3 -t 300 -c 50  --lib-client-path /db/mysql/bin/mysql --verbose

워크로드가 적어 성능 측정이 되지 않는다.

적절하게 값을 늘려본다.

> ./scripts/run_mysql.sh -u test2 --password test2 -d dbt2 -s /tmp/mysql.sock -w 50 -t 300 -c 50  --lib-client-path /db/mysql/bin/mysql --verbose

해당 서버는 사양이 좋지 않아 분당 약 40 의 주문 트랜잭션 처리가 가능하다.

'MySQL' 카테고리의 다른 글

binlog2sql: Binlog를 이용한 Point In Time Recovery  (0) 2020.08.04
mysql 벤치 마크 툴 sysbench  (0) 2020.04.16
optimizer trace  (0) 2019.11.26
MySQL EXPLAIN ANALYZE  (0) 2019.10.02
MySQL Hash Join Optimization  (0) 2019.10.02