일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- rac
- SQL
- 연산자
- solaris network
- perl one-liner
- dba
- sqlplus
- perl string
- php5
- prompt
- Linux
- memory
- 오라클
- fdisk
- command & perl
- Network
- perl + 정규표현식
- MySQL
- oracle
- patch
- mariaDB
- solaris
- Unix
- PERL
- bash
- grid
- cygwin
- Oracle RAC
- RHEL4
- oracle install
- Today
- Total
DATA 전문가로 가는 길
[MariaDB/MySQL] 대용량 데이터 성능 분석 및 부하 테스트(sysbench) 본문
[MariaDB/MySQL] 대용량 데이터 성능 분석 및 부하 테스트(sysbench)
EstenPark 2017. 8. 29. 15:35MariaDB에서 성능 테스트를 하기 위해서 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
'Data Architecture > Tunning' 카테고리의 다른 글
[MySQL/MariaDB] 대용량 페이징 처리 활용 방안(Pagination, 커버링 인덱스) (3) | 2020.07.21 |
---|---|
[MySQL/MariaDB] 불필요한 Table Access와 인덱스 컬럼 변형에 대한 튜닝 사례 (0) | 2020.07.10 |
[Oracle] 프로시저, 패키지 중복 실행 방지 해결 방안(DBMS_LOCK) (0) | 2017.04.05 |
[Oracle] Oracle Real-Time SQL Monitoring(쿼리 모니터링) (0) | 2017.01.13 |
[Oracle] Not Null 제약 조건에 따른 인덱스 실행 계획 (0) | 2015.12.23 |