[MariaDB/MySQL] 대용량 데이터 성능 분석 및 부하 테스트(sysbench)
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