Use bonnie++ to Test system IO speed

원본 링크:
http://www.eygle.com/unix/Use.Bonnie++.To.Test.IO.speed.htm
 
보 니 는 > 2G 파일 지원. Russell Coker () 와 같은 잘 알려 진 문제 가 있 기 때 문 입 니 다[email protected]) > 2G 파일 등 을 지원 하기 위해 새로운 코드 를 개 발 했 습 니 다. Tim Bray ([email protected]) 허 가 를 받 은 후에 러 셀 은 그의 소프트웨어 를 보 니 + 라 고 명명 하여 인터넷 에 발표 하고 유행 하기 시작 했다.
현재 버 전 은 1.03a 로 업데이트 되 었 습 니 다. 아래 주소 로 다운로드 할 수 있 습 니 다.http://www.coker.com.au/bonnie+ + / 당신 도 여 기 를 클릭 하여 다운로드 할 수 있 습 니 다. 이 버 전 은 컴 파일 이 필요 합 니 다. 컴 파일 환경 이 없다 면 여 기 를 클릭 하여 제 가 컴 파일 한 것 을 다운로드 할 수 있 습 니 다. SUN Solaris 환경 (Solaris 8 테스트 통과) 에 적 용 됩 니 다.
Russell Coker 의 개인 홈 페이지 는:http://www.coker.com.au/
보 니 + 보 니 와 의 차 이 는 주로:http://www.coker.com.au/bonnie++/diff.html
보 니 + 의 컴 파일 및 사용 에 대해 간단히 소개 하 겠 습 니 다.
1. 컴 파일
위 에서 다운로드 한 원본 코드 를 컴 파일 해 야 사용 할 수 있 습 니 다. 컴 파일 환경 이 없다 면 여 기 를 클릭 하여 제 가 컴 파일 한 것 을 다운로드 하 십시오. SUN Solaris 환경 (Solaris 8 테스트 통과) 에 적 용 됩 니 다.
물론 make, gcc 등 필요 한 컴 파일 러 를 설치 해 야 합 니 다. 컴 파일 과정 에서 다음 과 같은 오류 가 발생 하면 정확 한 환경 변 수 를 설정 하지 않 았 기 때 문 일 수 있 습 니 다.
$ ./configure
grep: illegal option -- q
Usage: grep -hblcnsviw pattern file . . .
grep: illegal option -- q
Usage: grep -hblcnsviw pattern file . . .
checking for g++... g++
checking for C++ compiler default output... a.out
checking whether the C++ compiler works... configure: error: cannot run C++ compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details.

환경 변 수 를 설정 한 후 계속 컴 파일 하면 성공 할 수 있 습 니 다.
 
# export LD_LIBRARY_PATH=/usr/lib:/usr/local/lib
# ./configure
grep: illegal option -- q
Usage: grep -hblcnsviw pattern file . . .
grep: illegal option -- q
Usage: grep -hblcnsviw pattern file . . .
checking for g++... g++
checking for C++ compiler default output... a.out
checking whether the C++ compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking how to run the C++ preprocessor... g++ -E
checking for a BSD-compatible install... /usr/bin/install -c
checking for an ANSI C-conforming const... yes
checking for egrep... egrep
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... no
checking for unistd.h... yes
checking for size_t... yes
checking vector.h usability... yes
checking vector.h presence... yes
checking for vector.h... yes
checking vector usability... yes
checking vector presence... yes
checking for vector... yes
checking algorithm usability... yes
checking algorithm presence... yes
checking for algorithm... yes
checking algo.h usability... yes
checking algo.h presence... yes
checking for algo.h... yes
checking algo usability... no
checking algo presence... no
checking for algo... no
configure: creating ./config.status
config.status: creating Makefile
config.status: creating bonnie.h
config.status: creating port.h
config.status: creating bonnie++.spec
config.status: creating bon_csv2html
config.status: creating bon_csv2txt
config.status: creating sun/pkginfo
config.status: creating conf.h
config.status: conf.h is unchanged

 
컴 파일 이 완료 되면 보 니 + + 가 생 성 됩 니 다. 테스트 에 사용 할 수 있 습 니 다.
2. 다음은 테스트 결과 입 니 다.
a. T3 대 파일 읽 기와 쓰기 테스트
 
# ./bonnie++ -d /data1 -u root -s 4096 -m billing
Using uid:0, gid:1.
Writing with putc()...done
Writing intelligently...done
Rewriting...done
Reading with getc()...done
Reading intelligently...done
start 'em...done...done...done...
Create files in sequential order...done.
Stat files in sequential order...done.
Delete files in sequential order...done.
Create files in random order...done.
Stat files in random order...done.
Delete files in random order...done.
Version  1.03       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
billing          4G  9915  87 30319  56 11685  38  9999  99 47326  66 177.6   3
                    ------Sequential Create------ --------Random Create--------
                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16   639  19 +++++ +++  1258  22   679  16 +++++ +++  1197  27
billing,4G,9915,87,30319,56,11685,38,9999,99,47326,66,177.6,3,16,639,19,+++++,+++,1258,22,679,16,+++++,+++,1197,27



b. EMC CLARiiON CX 500 테스트 데이터
이것 은 내 가 Cache 를 쓴 후의 테스트 데 이 터 를 사용 하지 않 는 것 이다.
4 개의 디스크 의 Raid 1 + 0 테스트:
 

# ./bonnie++ -d /eygle -u root -s 4096 -m jump   
Using uid:0, gid:1.
File size should be double RAM for good results, RAM is 4096M.
# ./bonnie++ -d /eygle -u root -s 8192 -m jump
Using uid:0, gid:1.
Writing with putc()...done
Writing intelligently...done
Rewriting...done
Reading with getc()...done
Reading intelligently...done
start 'em...done...done...done...
Create files in sequential order...done.
Stat files in sequential order...done.
Delete files in sequential order...done.
Create files in random order...done.
Stat files in random order...done.
Delete files in random order...done.
Version  1.03       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
jump             8G 12647  36 13414   8  7952  13 33636  97 146503  71 465.7   5
                    ------Sequential Create------ --------Random Create--------
                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16    86   1 +++++ +++   161   1    81   1 +++++ +++   163   1
jump,8G,12647,36,13414,8,7952,13,33636,97,146503,71,465.7,5,16,86,1,+++++,+++,161,1,81,1,+++++,+++,163,1


4 개의 디스크 의 Raid 5, Cache 를 쓴 후의 속 도 를 사용 하지 않 습 니 다:
 

# ./bonnie++ -d /eygle -u root -s 8192 -m jump
Using uid:0, gid:1.
Writing with putc()...done
Writing intelligently...done
Rewriting...done
Reading with getc()...done
Reading intelligently...done
start 'em...done...done...done...
Create files in sequential order...done.
Stat files in sequential order...done.
Delete files in sequential order...done.
Create files in random order...done.
Stat files in random order...done.
Delete files in random order...done.
Version  1.03       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
jump             8G 10956  30 10771   6  3388   5 34169  98 158861  75 431.1   5
                    ------Sequential Create------ --------Random Create--------
                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16    81   1 +++++ +++   160   1    82   1 +++++ +++   109   1
jump,8G,10956,30,10771,6,3388,5,34169,98,158861,75,431.1,5,16,81,1,+++++,+++,160,1,82,1,+++++,+++,109,1
                

이 두 가지 결 과 를 비교 해 보면 우 리 는 (단위 K / sec):
 
문자 쓰기
쓰기 차단
문자 읽 기
읽 기 차단
Raid10
12,647
13,414
33,636
146,503
Raid5
10,956
10,771
34,169
158,861
Diff
1,691
2,643
-533
-12,358
우 리 는 직접 읽 고 쓰기 에 Raid 10 을 쓰 면 Raid 5 보다 약간 빠르다 는 것 을 보 았 다.읽 기 에 있어 서 Raid 5 는 Raid 10 보다 약간 빠 를 것 입 니 다. 이것 은 우리 의 일반적인 관점 에 부합 합 니 다.
여기 서 언급 해 야 할 것 은 보통 RedoLog file 을 Raid 10 디스크 에 저장 하 는 것 을 권장 합 니 다. 쓰기 장점 이 있 기 때 문 입 니 다.

좋은 웹페이지 즐겨찾기