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 우분투 기본 쉘 dash 에서 bash로 변경하기 호스트웨이 2015.09.07 10751
305 패스워드 정책 변경 호스트웨이 2015.09.03 3722
304 명령어 dstat 사용하기 호스트웨이 2015.09.01 4370
303 ulimit 설정 관련 호스트웨이 2015.07.29 77605
302 2015년 7월1일 윤초 발생 관련 점검 방안 file 호스트웨이 2015.06.30 1558
» Sysbench를 통한 System, MySQL 성능 테스트 file 호스트웨이 2015.06.26 9864
300 ngrinder를 이용한 부하 테스트 - 1) Controller 설치 file 호스트웨이 2015.04.08 4285
299 epel-release 설치하기 file 호스트웨이 2014.12.22 14274
298 SVN(subversion) 설치 및 셋팅 file 호스트웨이 2014.12.02 6418
297 리눅스 커널 업데이트 및 커널 변경 부팅 방법 file 호스트웨이 2014.10.30 23373
296 samba 설치 file 호스트웨이 2014.04.14 3360
295 partprobe - 리부팅 없이 사용 중인 파티션 재인식 호스트웨이 2012.12.28 8297
294 오늘 생성한 파일만 조회하기 호스트웨이 2012.12.27 6212
293 sftp 서비스 막기 호스트웨이 2012.12.27 1317
292 리눅스 uniq 명령어 file 호스트웨이 2012.12.27 7875
291 ls -l 출력 시 날짜형태 변경 호스트웨이 2012.12.27 6128
290 리눅스 free 명령어 호스트웨이 2012.12.26 1817
289 리눅스 캐시 메모리 비우기 file 호스트웨이 2012.12.26 5267
288 [ERROR] ftp error 500 OOPS: cannot change directory:/home/ 호스트웨이 2012.12.21 4276
287 free -m 에서 free (남는 메모리 양) 최소량 제한하기 호스트웨이 2012.12.21 2144