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 sshd_config 파일 설명 호스트웨이 2012.11.29 14041
265 리눅스 comm 명령어를 통해 두개의 파일내용 비교하기 file 호스트웨이 2012.11.29 4421
264 리눅스 일반사용자에게 root 권한 부여하기 file 호스트웨이 2012.11.23 12428
263 debian / ubuntu SSH root 사용자 접속 허용 호스트웨이 2012.11.23 14069
262 vi 편집기에서 모든글자를 대소문자로 변경할때 사용하는 명령어 호스트웨이 2012.11.23 4135
261 ifconfig 항목 설명 호스트웨이 2012.11.22 4399
260 /proc 디렉터리내 파일 정보 알아보기 호스트웨이 2012.11.21 1915
259 랜카드 본딩(bond0) 설정 호스트웨이 2012.11.16 2718
258 현재 접속 사용자(머신/디바이스)수 알아내기 호스트웨이 2012.11.16 1129
257 arch 명령어를 통해 컴퓨터 종류 알기 file 호스트웨이 2012.11.16 1797
256 INIT: no more processes left in this runlevel 메세지 발생시 호스트웨이 2012.11.15 3018
255 vi 로 ^M 제거하기 호스트웨이 2012.11.15 11206
254 리눅스 간단 시스템 점검 1편 호스트웨이 2012.11.14 4128
253 limits.conf 설명 file 호스트웨이 2012.11.09 2132
252 Ubuntu 12.10(quantal) 업그레이드 하기 호스트웨이 2012.11.09 19237
251 bonding mode 종류 알아보기 호스트웨이 2012.11.08 10454
250 쉘 프롬프트 설정하기 file 호스트웨이 2012.11.08 2671
249 kbd_mode 명령어를 통해 인식중인 키보드모드 출력 및 변경하기 file 호스트웨이 2012.11.06 1896
248 리눅스 look 명령어 file 호스트웨이 2012.11.02 2598
247 i386, i586, i686, x86의 차이 호스트웨이 2012.11.01 7463