'i/o'에 해당되는 글 1건

  1. 2009.10.12 Measure Filesystem I/O Performance With iozone

원문 : http://planet.admon.org/2009/09/measure-filesystem-io-performance-with-iozone/

다음은 파일시스템 벤치마크를 수행하고 싶어하는 상황들이다. 원래의 버전은 Ramesh Natarajan에 의해
만들어졌고 이 새 버전은 joseph chen에 의해 수정되었다.

=> 읽기 쓰기가 많은 새 응용프로그램을 적용할 때
=> 새 스토리지를 구매하여 성능을 측정하려고 할 때
=> RAID 레벨을 변경하고 새로운 RAID의 성능을 측정하려고 할 때
=> 스토리지 파라미터를 변경하고 이에 따른 성능상의 영향을 알고 싶을 때

이 글은 여러분들에게 공개 파일시스템 벤치마크 도구인 iozone을 시용하여 파일시스템에 대한 벤치마크를
수행하기 위한 시발점[? jumpstar]을 제공한다.

1. iozone 다운로드 및 설치

iozone 홈페이지(http://www.iozone.org/)에서 자신에게 맞는 플랫폼용 iozone을 다운로드 받는다. 나(원문저자)는
"Linux i386 RPM"을 다운로드했다. RPM으로 설치하기 위해 다음 명령을 사용한다. 기본적으로 /opt/iozone/bin에
설치된다.

# rpm -ivh http://www.iozone.org/src/current/iozone-3-303.i386.rpm

註) iozone은 Unix/Linux, Windows OS에 설치할 수 있다.

2. 성능 테스트
성능 테스트를 시작하려면 다음의 명령을 백그라운드로 실행한다.
# /opt/iozone/bin/iozone -R -l 5 -u 5 -r 4k -s 100m -F /home/f1 /home/f2 /home/f3 /home/f4 /home/f5 | tee -a /tmp/iozone_result.txt &

iozone 명령에 주어진 각각의 파라미터를 살펴보자.

* -R : 엑셀 호환 텍스트 출력
* -l : iozone 실행시에 실행할 프로세스/쓰레드의 lower 제한. 이 예제에서는 5 쓰레드를 시작
* -u : iozone 실행시에 실행할 프로세스/쓰레드의 upper 제한. 이 예제에서는 최대 5 쓰레드를 넘지 않음. 만일 -l과 -u를
        같은 값으로 설정하면 정확히 그 수만큼의 프로세스/쓰레드를 실행. 예제에서는 5개의 쓰레드를 실행할 것이다.
* -r : 레코드 사이즈 지정. 예에서 벤치마크 테스트를 위한 레코드 사이즈는 4k이다. 파일시스템 성능 테스트의 목적에
        따라 파라미터를 적절히 설정하는 것이 중요하다. 예를 들어 데이터베이스가 있는 파일시스템에 대한 성능
        벤치마크를 할때는 이 값을 데이터베이스의 DB block 사이즈로 맞추는 것이 적당하다.
* -s : 테스트에 필요한 파일 사이즈를 지정. 예제에서는 100MB 파일에 대해 테스트를 수행할 것이다.
* -F : 테스트하는 동안 iozone이 사용할 임시파일을 지정한다. 총 파일의 갯수는 -l과 -u에서 지정한 수와 같아야 한다.

3. iozone 출력 파일 분석

출력물의 첫 부분은 테스트된 각 파일시스템 성능 측정값에 대한 상세한 정보를 담고 있다. 예를 들면, 아래와 같이
초기 쓰기, 다시쓰기 등등

Iozone: Performance Test of File I/O
Version $Revision: 3.303 $
Compiled for 32 bit mode.
Build: linux

Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins
Al Slater, Scott Rhine, Mike Wisner, Ken Goss
Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR,
Randy Dunlap, Mark Montague, Dan Million,
Jean-Marc Zucconi, Jeff Blomberg, Benny Halevy,
Erik Habbinga, Kris Strecker, Walter Wong, Joshua Root.

Run began: Thu Jun  22 00:08:51 2008

Excel chart generation enabled
Record Size 4 KB
File size set to 102400 KB
Command line used: /opt/iozone/bin/iozone -R -l 5 -u 5 -r  4k -s 100m -F /home/f1 /home/f2 /home/f3 /home/f4 /home/f5
Output is in Kbytes/sec
Time Resolution = 0.000001 seconds.
Processor cache size set to 1024 Kbytes.
Processor cache line size set to 32 bytes.
File stride size set to 17 * record size.
Min process = 5
Max process = 5
Throughput test with 5 processes
Each process writes a 102400 Kbyte file in 4 Kbyte records

Children see throughput for  2 initial writers  =   60172.28 KB/sec
Parent sees throughput for  2 initial writers   =   45902.89 KB/sec
Min throughput per process                        =   28564.52 KB/sec
Max throughput per process                      =   31607.76 KB/sec
Avg throughput per process                      =   30086.14 KB/sec
Min xfer                                                  =   92540.00 KB

Children see throughput for  2 rewriters        =   78658.92 KB/sec
Parent sees throughput for  2 rewriters         =   34277.52 KB/sec
Min throughput per process                      =   35743.92 KB/sec
Max throughput per process                      =   42915.00 KB/sec
Avg throughput per process                      =   39329.46 KB/sec
Min xfer                                        =   85296.00 KB

위와 비슷한 값들이 readers, re-readers, reverse readers, stride readers, random readers, mixed workload,
random writers, pwrite writers, pread readers에 대해 생성될 것이다. iozone 출력물의 마지막에는 아래와 같이
다른 측정값에 대한 전체적인 요약을 보여준다.

Throughput report Y-axis is type of test X-axis is number of processes
Record size = 4 Kbytes
Output is in Kbytes/sec
Initial write 60172.28
Rewrite 78658.92
Read 2125613.88
Re-read 1754367.31
Reverse Read 1603521.50
Stride read 1633166.38
Random read 1583648.75
Mixed workload 1171437.78
Random write 5365.59
Pwrite 26847.44
Pread 2054149.00

iozone은 다른 형태의 파일시스템 성능 측정값에 대해 벤치마크를 한다. 예를 들어 읽기, 쓰기, 임의 읽기등.
특정 파일시스템에 적용하려는 응용프로그램에 따라 적절한 항목에 대해 주의를 기울여야 한다. 예를 들어
읽기 작업이 많은 OLTP 데이터 베이스가 있는 파일시스템이라면 Random Read, Random Write와 혼합
작업량에 주의를 기울여야 한다. 응용프로그램이 미디어 컨텐츠를 스트리밍한다면, Sequential Read에
주의를 기울여야 한다. 마지막으로 알아 둘 것은 /opt/iozone/bin에 있는 Generate_Graphs와 gengnuplot.sh를
이용해 iozone 출력물에 기반한 그래프를 생성할 수 있다는 것이다.

참고 :

* Iozone PDF documentation – iozone 명령행 옵션과 이외의 내용에 대해 설명하고 있다.

* Linux Iozone graph example – iozone으로 생성할 수 있는 excel 출력물 샘플


 

신고
Posted by She쥐포s