2015.06.26 15:31
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
결과 화면
예제
# 실행 회수 기반의 테스트 (시간 관계없이 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
결과 화면
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
결과 화면
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 : 테스트하려는 파일 사이즈를 지정 합니다.
결과 화면
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-3. 테스트 파일 삭제
sysbench --test=fileio --num-threads=2 --file-num=16 --file-total-size=5G --file-test-mode=rndrw --file-rw-ratio=2 cleanup
결과 화면
감사합니다.
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
266 | 오늘 생성한 파일만 조회하기 | 호스트웨이 | 2012.12.27 | 4872 |
265 | /etc/fstab 등록 | 호스트웨이 | 2015.09.22 | 5034 |
264 |
SFTP 접속 방법
![]() | 호스트웨이 | 2012.09.21 | 5051 |
263 | 서버 계정을 다른서버로 이전하기 | 호스트웨이 | 2015.09.23 | 5191 |
262 | 서버시간 매시간마다 동기화 설정 | 호스트웨이 | 2015.09.23 | 5217 |
261 | partprobe - 리부팅 없이 사용 중인 파티션 재인식 | 호스트웨이 | 2012.12.28 | 5240 |
260 | lrzsz 사용해보기 | 호스트웨이 | 2012.10.12 | 5270 |
259 |
SVN(subversion) 설치 및 셋팅
![]() | 호스트웨이 | 2014.12.02 | 5588 |
258 | 리눅스 파일 소유자, 권한 일괄 변경하기 | 호스트웨이 | 2015.09.08 | 5726 |
257 | root 초기 접속 홈디렉토리 변경하기 | 호스트웨이 | 2015.09.12 | 5936 |
256 |
/tmp 디렉토리 보안 설정하기
![]() | 호스트웨이 | 2015.09.17 | 6131 |
255 | hadoop 1.x 설치 & 설정 | 호스트웨이 | 2015.09.18 | 6494 |
254 | i386, i586, i686, x86의 차이 | 호스트웨이 | 2012.11.01 | 6496 |
253 | 우분투 기본 쉘 dash 에서 bash로 변경하기 | 호스트웨이 | 2015.09.07 | 6715 |
252 | extundelete tool을 이용하여 삭제된 파일 복구하기 | 호스트웨이 | 2016.02.29 | 7017 |
251 | 리눅스 CD로 손상된 파일 복구하기 | 호스트웨이 | 2015.09.29 | 7149 |
250 |
리눅스 uniq 명령어
![]() | 호스트웨이 | 2012.12.27 | 7609 |
249 | vsFTPd 사용시 디렉토리 목록 조회가 안될때 | 호스트웨이 | 2012.11.30 | 7823 |
» |
Sysbench를 통한 System, MySQL 성능 테스트
![]() | 호스트웨이 | 2015.06.26 | 8978 |
247 | bonding mode 종류 알아보기 | 호스트웨이 | 2012.11.08 | 9173 |