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

감사합니다.


번호 제목 글쓴이 날짜 조회 수
306 linux 특정 용량으로 파일을 찾기, 삭제하기 호스트웨이 2015.09.08 4682
305 리눅스 tee명령어를 이용하여 디렉토리 목록 저장 file 호스트웨이 2012.09.28 4730
304 라우팅 제어명령 호스트웨이 2015.09.17 4784
303 리눅스 명령어 모음 호스트웨이 2012.12.06 4785
302 bios 타이머 및 시간 설정 호스트웨이 2015.09.18 4826
301 iotop 사용하기 호스트웨이 2015.09.14 4914
300 Web site에서 php error log 출력하지 않기 호스트웨이 2012.11.01 5047
299 패키지에 포함된 리스트 확인하기 호스트웨이 2012.12.07 5084
298 리눅스 파일 및 디렉토리 권한 관리 file 호스트웨이 2015.09.13 5181
297 리눅스 캐시 메모리 비우기 file 호스트웨이 2012.12.26 5267
296 Linux -(하이픈)으로 시작하는 파일 지우기 호스트웨이 2015.09.20 5497
295 Proftp 설치 및 xinetd 에서 실행하기 file 호스트웨이 2015.09.18 5588
294 dumpe2fs - 파일시스템 상세 정보 확인 호스트웨이 2015.09.18 5611
293 서버 네트워크 대역폭 제한 호스트웨이 2015.09.20 5715
292 LAN 카드에 여러개의 IP 주소 할당 호스트웨이 2015.09.18 5768
291 tar 분할압축하기 호스트웨이 2015.09.19 5872
290 Linux chkrootkit을 이용한 백도어 설치 탐지 호스트웨이 2015.09.18 5932
289 lrzsz 사용해보기 호스트웨이 2012.10.12 6059
288 Touch 파일 용량 0바이트 만들기 호스트웨이 2015.09.20 6111
287 ls -l 출력 시 날짜형태 변경 호스트웨이 2012.12.27 6128