반응형

안녕하세요.


스토리지, 파일시스템 성능 측정 툴인 vdbench에 대한 포스팅 입니다.




vdbench는 디렉토리와 파일 구성, 멀티 클라이언트 테스트 등을 간편하게 수행할 수 있는 툴 입니다.




vdbench는 오라클에서 만든 툴 입니다.


다음 링크를 통해 다운받으시면 됩니다.


다운로드 - http://www.oracle.com/technetwork/server-storage/vdbench-downloads-1901681.html




다음은 테스트 스크립트를 작성해주시면 됩니다.


저는 리눅스 기준으로 설명해보겠습니다.


먼저 스크립트에서 사용하는 인자들에 대한 설명 입니다.




* fsd (File System Definition) - 파일, 디렉토리 set을 정의합니다.


* host - vdbench 클라이언트 호스트 (vdbench를 수행 할 클라이언트 들)을 정의합니다. (로컬에서만 진행 시 필요 X) 각 호스트에는 vdbench가 동일 위치에 있어야 하며, /etc/host에 정의가 되어 있어야 되고, ssh 접속을 패스워드 입력 없이 하기 위해 ssh-copy가 되어있어야 합니다.


* fwd (Filesystem Workload Definition) - 테스트 워크로드를 정의합니다.


* rd (Run Definition) - 테스트 실행을 정의합니다. 실제 테스트는 'rd' 인자를 기반으로 정의합니다.




기본적으로 위에 것들만 가지고도 테스트가 가능합니다.


테스트 스크립트 작성 규칙은 예시를 가지고 자세히 설명해 보겠습니다.




다음 워크로드로 스크립트를 작성해보았습니다.


* 테스트 클라이언트 2개


* 클라이언트 당 디렉토리 구조 - width 10, depth 2 (이 경우 상위 디렉토리에 디렉토리가 10개 생기고, 각 디렉토리별로 하위 디렉토리가 10개씩 생성됩니다. 그리고 최하위 디렉토리에 파일이 생성됩니다.)


* (최하위) 디렉토리 당 파일 개수 - 10개


* 파일 사이즈 - 1MB


* I/O size = 256KB


* I/O 종류 - create, write, read




'vdbench_test_script'


host=default,user=root,shell=ssh,vdbench=/root/vdbench50403

host=client1, system=client1

host=client2, system=client2


fsd=fsd1,anchor=/mnt/testvol/vdbench_dir/a,depth=2,width=10,file=10,size=1MB

fsd=fsd2,anchor=/mnt/testvol/vdbench_dir/b,depth=2,width=10,file=10,size=1MB


fwd=fwd1,host=client1,fsd=fsd1,operation=create,xfersize=256k,fileio=sequential,threads=1

fwd=fwd2,host=client2,fsd=fsd2,operation=create,xfersize=256k,fileio=sequential,threads=1


fwd=fwd3,host=client1,fsd=fsd1,operation=write,xfersize=256k,fileio=sequential,threads=1

fwd=fwd4,host=client2,fsd=fsd2,operation=write,xfersize=256k,fileio=sequential,threads=1


fwd=fwd5,host=client1,fsd=fsd1,operation=read,xfersize=256k,fileio=sequential,threads=1

fwd=fwd6,host=client2,fsd=fsd2,operation=read,xfersize=256k,fileio=sequential,threads=1


rd=rd1,fwd=(fwd1,fwd2),fwdrate=max,format=yes,interval=1
rd=rd2,fwd=(fwd3,fwd4),fwdrate=max,format=no,interval=1,elapsed=300
rd=rd3,fwd=(fwd5,fwd6),fwdrate=max,format=no,interval=1,elapsed=300



1. host


제일 첫 줄 default는 모든 host 설정에 적용하는 내용입니다.


'vdbench' 뒤에는 vdbench가 위치하는 디렉토리를 입력하면 됩니다.


host=client1 은 이 스크립트에서 host 객체를 client1로 지정한다는 얘기고, 'system=client1'은 이 호스트는 /etc/hosts에 'client1'로 지정되어 있단 뜻 입니다.




2. fsd


anchor는 파일 I/O가 발생하는 위치를 말합니다.


상위 디렉토리는 /mnt/testvol/vdbench_dir 이고, 그 아래 a, b 디렉토리는 vdbench가 생성해 줍니다.


depth와 witdh는 디렉토리 구성 방법입니다.


full-tree 형태로 구성된다고 생각하시면 되빈다.


file=10은 최 하위 디렉토리에 파일을 10개 만들겠단 뜻이고,


size=1MB는 파일 하나 당 사이즈 입니다.




3. fwd


host는 어떤 호스트에서 수행을 할것인지,


fsd는 어떤 fsd를 사용할 것인지,


operation은 어떤 operation을 사용할 것인지를 나타냅니다.


create는 파일 생성, write는 생성된 파일에 over-write, read는 생성된 파일을 read하는 작업 입니다.


xfersize는 I/O size를 지정한 것이고,


fileio는 파일 I/O 방식 입니다. (sequential, random)


threads는 작업 스레드 개수이며 총 파일 개수보다 많으면 에러가 발생합니다.




4. rd


fwd는 어떤 fwd를 사용 할 것인지, (여러개 일 경우 괄호 () 로 묶으면 됩니다.)


format은 해당 디렉토리를 싹 지우고 파일을 다시 생성할지를 설정하는 것 입니다.


create의 경우 format은 yes가 되어야 하고,


write와 read의 경우 format이 yes로 되어있으면 파일을 새로 create를 하고 I/O를 수행하고,


no로 되어있을 경우 기존 파일을 그대로 사용합니다. (단 기존 디렉토리, 파일 구성이 설정한 fsd와 일치해야 합니다.)


elapsed는 I/O 시간을 설정하는 것입니다. create에는 적용되지 않습니다. (create는 파일 생성이 다 완료될 때 까지 수행됩니다.)


interval은 결과를 기록하는 단위를 나타냅니다. (초 단위)


1로 되있으면 1초마다 latency, bandwidth 등을 기록합니다.




vdbench 수행 방법은 다음과 같습니다.


vdbench -f 스크립트명 -o 결과디렉토리


-f는 파일시스템 테스트 옵션입니다.


-o는 결과 파일 (html 형태)들이 저장되는 디렉토리이고, 입력하지 않을경우 'output' 디렉토리가 자동으로 지정됩니다.

반응형
Posted by 해리팍
BLOG main image

Chanhyun Park (해리팍)
Software Engineer @ SK hynix

Contact Info.
parkch0708@hanmail.net
chanhyun0708@gmail.com
chanhyun.park@sk.com

카테고리

All (1513)
Profile (2)
Park's Life (601)
Smart Home (IoT) (4)
Computer System (165)
Computer Programming (39)
Computer Study (54)
Computer Etc. (189)
Scuba Diving (137)
Golf (8)
Traveling (250)
생활 정보 (13)
Pokemon GO (50)