Linux ETC

H/W (CPU, Disk I/O), MySQL DB 환경(버전, 파라미터)의 변경 벤치마크 등 간단한 성능 테스트 자료가 필요한 경우 이용할 수 있는 성능 테스트 툴 입니다.

GUI 등으로 제공되진 않아 자세한 비교 분석 자료를 만들기는 다소 단점이 있으나, 간단하게 테스트를 진행할 수 있는 오픈 소스입니다.

 

FAQ에서는 mysql 성능 테스트 및 Disk I/O 성능 테스트 정도를 다루어 보며, 자세한 사용법은 아래 sysbench 매뉴얼을 참조하시기 바랍니다.

 

http://imysql.com/wp-content/uploads/2014/10/sysbench-manual.pdf

 

1. 설치 방법

공식 홈페이지 및 미러사이트 등을 통해 sysbench 소스를 다운 받습니다.

홈페이지 : https://launchpad.net/sysbench

 

wget http://down1.chinaunix.net/distfiles/sysbench-0.4.10.tar.gz

 

2. 소스파일 압축 해제 및 컴파일

./configure --prefix=/usr/local --with-mysql-includes=(mysql설치 경로)/include/mysql --with-mysql-libs=(mysql 설치 경로)/lib/mysql

make && make install

 

또는 yum / apt 를 통한 설치 (최신 버전인 0.5)

yum install sysbench

 

3. Mysql 성능 테스트

3-1. 테스트 용도 DB 및 유저 생성

create database sysbench;

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

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

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

grant all on sysbench.* to sysbench@'%';

grant all on sysbench.* to sysbench@'localhost';

grant all on sysbench.* to sysbench@'127.0.0.1'

 

 

 

 

4. Mysql 성능 테스트 전 테스트 Table 생성

 

테스트 환경 생성시에는 마지막에 prepare 를 기입하며, 성능 테스트시에는 run 옵션을 기입합니다.

 

생성 예시)

sysbench --test=oltp --oltp-table-size=[테이블-레코드-건수]

--max-requests=[쿼리-요청-개수] --max-time=[테스트-시간]

--mysql-host=[호스트명] --mysql-db=[테스트-데이터베이스명] --mysql-user=[DB-USER] --mysql-password=[DB-USER-비밀번호]

--mysql-table-engine=[테이블-엔진-종류] --myisam-max-rows=[MyISAM인 경우-레코드-최대-건수]

--mysql-socket=[MySQL-소켓-파일-경로]

--mysql-port=[MySQL-포트-번호]

--oltp-test-mode=[simple|complex|nontrx] 테스트 모드 선택

--oltp-read-only=[on|off]

--oltp-read-only=off --db-driver=mysql

prepare

 

결과 화면

 첨부1.png


예제

# 실행 회수 기반의 테스트 (시간 관계없이 100번 요청 실행)

sysbench --test=oltp --oltp-table-size=1000 --num-threads=8 --max-requests=100 --max-time=0 --mysql-host=localhost --mysql-user=sysbench --mysql-password=sysbench --mysql-db=sysbench --mysql-table-engine=innodb --mysql-create-options=  --mysql-socket=/tmp/mysql.sock --mysql-port=3306 --oltp-test-mode=complex --oltp-read-only=off --db-driver=mysql --db-ps-mode=disable run

 

결과 화면

 첨부2.png

transactions:                        100    (42.01 per sec.)

초당 트랜잭션 42

 

read/write requests:                 1965   (825.44 per sec.)

초당 쿼리 실행 825

 

# 실행 시간 기반의 테스트 (요청 수에 관계 없이 20초 동안 실행)

 

./sysbench --test=oltp --oltp-table-size=1000 --num-threads=8 --max-requests=0 --max-time=20--mysql-host=localhost --mysql-user=sysbench --mysql-password=sysbench --mysql-db=sysbench --mysql-table-engine=innodb --mysql-create-options= --mysql-socket=/tmp/mysql.sock --mysql-port=3306 --oltp-test-mode=complex --oltp-read-only=off --db-driver=mysql --db-ps-mode=disable run

 

결과 화면

 첨부3.png


5. 디스크 I/O 성능 테스트

I/O 테스트의 경우 테스트 파일 생성, 테스트, 해당 테스트 파일 삭제로 테스트를 진행 합니다.

 

5-1. 테스트 파일의 생성

sysbench --test=fileio --num-threads=2 --file-num=16 --file-total-size=5G --file-test-mode=rndrw --file-rw-ratio=2 prepare

 

--file-total-size=5G : 테스트하려는 파일 사이즈를 지정 합니다.

 

결과 화면

 첨부4.png

 

5-2. I/O 성능 테스트 진행

 

sysbench --test=fileio --num-threads=2 --file-num=16 --file-total-size=5G --file-test-mode=rndrw --file-rw-ratio=2 run

 

--test=fileoio : 테스트 이름이기에 해당 테스트 이름에 지정한 설정 값을 맞춰 주어야 합니다.

 

결과 화면

 첨부5.png

5-3. 테스트 파일 삭제

sysbench --test=fileio --num-threads=2 --file-num=16 --file-total-size=5G --file-test-mode=rndrw --file-rw-ratio=2 cleanup

 

결과 화면

첨부6.png

감사합니다.


번호 제목 글쓴이 날짜 조회 수
266 리눅스 서버 보안 관련 설정 호스트웨이 2015.09.23 9017
265 hadoop 1.x 설치 & 설정 호스트웨이 2015.09.18 9110
264 kornet SMTP 서비스 종료에 따른 구글 SMTP 활용 방안 file 호스트웨이 2016.04.28 9211
263 vsFTPd 사용시 디렉토리 목록 조회가 안될때 호스트웨이 2012.11.30 9301
262 삭제된 파일 복구 - 1 호스트웨이 2015.09.23 9338
261 Linux ssh 무작위 공격 방어하기 - fail2ban 호스트웨이 2015.09.24 9397
260 /tmp 디렉토리 보안 설정하기 file 호스트웨이 2015.09.17 10006
» Sysbench를 통한 System, MySQL 성능 테스트 file 호스트웨이 2015.06.26 10055
258 /proc/sys/net/ipv4/conf/ 네트워크 세팅 호스트웨이 2015.09.22 10201
257 Linux 설치된 OS 커널의 Bit확인 호스트웨이 2015.09.26 10538
256 bonding mode 종류 알아보기 호스트웨이 2012.11.08 10571
255 find 명령을 통한 소유자, 백도어, 파일 찾기 호스트웨이 2015.09.29 10684
254 사용 가능한 쉘 확인 및 변경법 호스트웨이 2015.09.24 11097
253 동일 네트워크의 중복 IP검색 호스트웨이 2015.09.23 11147
252 vi 로 ^M 제거하기 호스트웨이 2012.11.15 11262
251 /etc/fstab 등록 호스트웨이 2015.09.22 11269
250 chfn 명령어를 통한 사용자 정보변경 file 호스트웨이 2012.09.07 11419
249 우분투 기본 쉘 dash 에서 bash로 변경하기 호스트웨이 2015.09.07 11457
248 리눅스 Ubuntu 네트워크 설정 호스트웨이 2012.09.14 11593
247 리눅스 Memory관리 호스트웨이 2012.08.24 11757