안녕하세요.
스토리지, 파일시스템 성능 측정 툴인 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' 디렉토리가 자동으로 지정됩니다.
'Computer System > Storage' 카테고리의 다른 글
[스토리지] CentOS 7 에서 gluster 설치하기 (glusterfs 설치) (0) | 2018.03.08 |
---|---|
[스토리지] GlusterFS - 레드햇 기반 분산 파일 시스템 (Gluster, 글러스터, scale-out, 스케일 아웃) (0) | 2018.03.08 |
[스토리지] dstat - 리눅스 리소스 모니터링 툴 (CPU, 스토리지, 네트워크) (0) | 2017.10.26 |
[스토리지] bonnie++ - 리눅스 스토리지 성능 측정 툴 (0) | 2017.10.18 |
[스토리지] 2TB 이상 스토리지의 파티션 생성 (리눅스 GPT, parted) (0) | 2017.10.12 |