DATA 전문가로 가는 길

[MariaDB/MySQL] 대용량 데이터 성능 분석 및 부하 테스트(sysbench) 본문

Data Architecture/Tunning

[MariaDB/MySQL] 대용량 데이터 성능 분석 및 부하 테스트(sysbench)

EstenPark 2017. 8. 29. 15:35

MariaDB에서 성능 테스트를 하기 위해서 Sysbench 오픈 소스이며,  H/W(CPU, Memory, I/O), MySQL/MariaDB 등등 다양하고, 간단한 성능 테스트를 할 수 있으며, 그 중에서 대용량 데이터를 적재하는 방법을 활용해보도록 하겠습니다.


1. 테스트 환경

  - OS : CentOS 7

  - DB : mysql  Ver 15.1 Distrib 10.2.7-MariaDB, for Linux (x86_64) using readline 5.1

  - 부하 테스트 및 성능 분석 툴 : sysbench 1.0.6


2. Sysbench Install

# Third-Party Yum Repos -> 
[root@manager /root]yum install http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-10.noarch.rpm

# Once you have one of these repos setup, you can install with yum.
[root@manager /root]yum -y install sysbench


3. Sysbench benchmarking database create

create database sysbench;

create user sysbench@'%' identified by 'sysbench';

grant all on sysbench.* to sysbench@'%';
grant all on sysbench.* to sysbench@'localhost' identified by 'sysbench';
grant all on sysbench.* to sysbench@'127.0.0.1';

flush privileges;


4. Sysbench 스크립트 소스 확인

# You can find the file by going to /usr and then do a find like this:
[root@manager /root] find / -name 'oltp*'*
/usr/share/sysbench/oltp_common.lua
/usr/share/sysbench/oltp_delete.lua
/usr/share/sysbench/oltp_insert.lua
/usr/share/sysbench/oltp_point_select.lua
/usr/share/sysbench/oltp_read_only.lua
/usr/share/sysbench/oltp_read_write.lua
/usr/share/sysbench/oltp_update_index.lua
/usr/share/sysbench/oltp_update_non_index.lua
/usr/share/sysbench/oltp_write_only.lua
/usr/share/sysbench/tests/include/oltp_legacy
/usr/share/sysbench/tests/include/oltp_legacy/oltp.lua
/usr/share/sysbench/tests/include/oltp_legacy/oltp_simple.lua


5. Sysbench 부하 테스트(MariaDB)

[root@manager /root] sysbench --time=240 --max-requests=0 /usr/share/sysbench/oltp_read_write.lua \
--table_size=100000 --tables=15 --report-interval=1 \
--mysql-host=localhost --mysql-port=3306 \
--db-driver=mysql --mysql-user=sysbench --mysql-password=sysbench \
--mysql-db=sysbench --mysql-socket=/estdb/dbms/data/mysql.sock --num-threads=100 \
prepare
  • --max-requests=[쿼리 요청 개수] 
  • --max-time=[테스트 시간]
  • --mysql-host=[호스트명] 
  • --mysql-db=[테스트 데이터베이스명] 
  • --mysql-user=[DB USER] 
  • --mysql-password=[DB USER 비밀번호] 
  • --mysql-table-engine=[테이블 엔진 종류] 
  • --mysql-socket=[MySQL 소켓 파일 경로] 
  • --mysql-port=[MySQL-포트-번호] 
  • --oltp-test-mode=[simple|complex|nontrx] 
  • --oltp-read-only=[on|off] 
  • --num-threads=[동시 스레드 개수]
  • --table_size=[데이터 건수]
  • --tables=15=[테이블 개수]
  • prepare : 초기 기반을 설치(테이블 및 데이터) 및 수행
  • run : prepare 수행 후 분석 결과 확인
  • cleanup : 초기 기반을 설치한 모든 내용 제거

6. 출처

 - 설치 : https://www.centoshowtos.org/commands/sysbench/

 - 매뉴얼 : https://wiki.mikejung.biz/Sysbench#Sysbench

 - OS 테스트 방법 : http://www.gnutoolbox.com/sysbench-benchmark-cpu-file-io-memory-centos/

 - CPU, Memory, File I/O Test : https://wiki.gentoo.org/wiki/Sysbench

 - MySQL/MariaDB 분석 방법 : http://intomysql.blogspot.kr/2010/12/sysbench-mysql-oltp.html

 - MySQL/MariaDB 성능 튜닝 방법 : https://github.com/major/MySQLTuner-perl

Comments