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 특정 사용자 계정 동시 로그인 수 제한 file 호스트웨이 2012.05.11 24340
265 keepalived.conf 각 파라미터의 의미 호스트웨이 2012.05.18 19135
264 telnet 사용 시 접속가능 시간 제어 하는 법 호스트웨이 2012.05.18 17224
263 리눅스 tar로 압축 할 때 Archive에 파일 업데이트 하기 호스트웨이 2012.05.18 16530
262 특정 NIC에 한 개 이상의 IP 할당하기 호스트웨이 2012.05.18 15481
261 /proc의 퍼미션 조정으로 보안 강화 호스트웨이 2012.05.18 14350
260 CentOS 4.x – yum mirror 사이트 변경 호스트웨이 2012.05.25 17180
259 Tcpdump의 옵션들 호스트웨이 2012.05.25 22264
258 SSH 로그인 지연 시 해결 방법 호스트웨이 2012.05.25 17393
257 netstat 명령어 호스트웨이 2012.05.25 17583
256 hdparm 을 이용한 하드성능 체크 및 하드 정보 확인 호스트웨이 2012.05.25 15585
255 Debian upgrade, lenny apt source list 호스트웨이 2012.05.25 17165
254 리눅스 메모리 캐쉬삭제 호스트웨이 2012.06.01 18484
253 리눅스에서 wget 명령어의 사용 방법 호스트웨이 2012.06.01 31369
252 ps 명령어 호스트웨이 2012.06.01 21772
251 리눅스 부팅 과정 file 호스트웨이 2012.06.01 16207
250 ubuntu 서버에 쉽게 apache + php + mysql + phpMyAdmin 설치하기 호스트웨이 2012.06.01 19148
249 CentOS터미널 접속시 쉘색상 변경방법 file 호스트웨이 2012.06.08 22067
248 lsof를 이용한 시스템에서 Open된 Port 검색 호스트웨이 2012.06.08 17535
247 리눅스 원격 접속자 세션 종료 file 호스트웨이 2012.06.08 34944