Skills/Cloud Computing
VXbench 라는 툴을 아십니까~?
mirr
2012. 2. 21. 10:56
이번엔 재밌는 툴.. 물론 상용인데.. 이거가지고 돈받거나 저작권 운운할것 같진 않아서
일단 소개도 하고, Filesystem 비교도 좀 직접 한 결과를 공유도 좀 하고자
작성하는 글이다.
혹여 저작권 문제가 된다면 바로 삭제할 것이다.
다음과 같이 Redhat 과 Suse 를 지원하는 바이너리 파일이 설치되어 있다.
help Output 을 확인 해 보자.
봐라 IOzone 등이 갖고 있는 기능을 다 갖고 있으면서도 오히려 더 짧고 직관적인
옵션을 통해 많은 테스트를 할 수 있도록 되어 있다고 생각되지 아니하지 않을수가 없지 않은가!
실제로 테스트가 불가능한 옵션 조합이나, 환경일 경우엔 벤치마킹을 할 수 없는
환경 및 대상이라는 메시지를 뿌려주기도 한다!
(예를 들어 Direct 옵션을 줬는데 디바이스명을 주지않고 파일명을 준다던가..)
이걸 통해 나오는 결과치의 모습을 보자.
간단하다 이건 마치 dd 만 친것과도 같은 심플한 결과치!
이걸 이용해 간단하게 엑셀로 BtrFS vs XFS vs EXT4 에대한 그래프를 만들어 보았다.
테스트 조건은 1G 파일을 bzise 만 달리하여 500번의 Write 를 수행한 결과이다.
아래는 응답시간(처리시간)에 대한 그래프이다.
아래는 Chunk Size 를 512k 로 주었을 때이다 ( 작은파일 )
4번째 시퀀스에선 약간 Disk Spindown 현상이 발생했긴 한데, 무시하자 귀찮다..
여기서 보듯이 vxBench 라는 툴로 간단하게 Excel 그래프를 만들어 낼 수 있으며,
BtrFS 가 작은 파일에 더 강하고, XFS 는 큰 파일에 강한지를 알 수 있으며,
Ext4 의 안정적 성능치에 대한 내용을 알아 볼 수 있었다.
참고로 H/W 제원은 나의 노트북이며, 다음과 같은 정보를 갖고 있다.
이고, 단순히 파일시스템에 대한 성능 측정만을 했음을 알린다.
vxBench 에 대한 공개는 가능한지, 저작관에 문제가 없는지 확신할 수가 없어서
공개 배포는 아무래도 안될것 같은데, 관심 있으면 IRC 나 메일,전화 등등의
수단을 이용해서 연락하기 바란다. 쿨럭.....
일단 소개도 하고, Filesystem 비교도 좀 직접 한 결과를 공유도 좀 하고자
작성하는 글이다.
혹여 저작권 문제가 된다면 바로 삭제할 것이다.
Symantec 에서 Veritas Volume Manager 를 매우 주요하게 사용하고 있다는건
왠만한 사람들은 다들 알고 있는 얘기일 것이다.
요즘 Filesystem I/O test 를 하면서 dd 만큼 간편하고, Iozone 이나 Bonnie++
만큼 상세한 설정이 가능한 Test 툴이 없을까 고민하던차에,
Symantec 민 모 과장님께서 Netbackup 의 I/O Test 를 좀 해서 결과를 보내달라는
요청을 받게 된다...
volume manger 의 Bench marking 툴을 이용해서 말이다!!! 두둥!!!!
그것은 다름아닌 vxbench 라는 툴이다..
이것은 Vertas 의 패키지로써, RedHat 과 Suse 의 RPM 패키지 형식으로
제공되며 패키지명은 VRTSspt-5.6 라고 한다.
/opt 에 설치가 되며 여기서 제공하는 도구들은 Veritas Volume (vxFS) 의
Optimazing ( Reclaim ) 도구와 Meta data 정리 도구, 그리고 vxBench 등을 제공한다.
소개는 여기까지만 하고 한번 내용을 살펴보도록 하자.
간단하다.
[mirr@Mirr-N Oracle]$ ls -lah /opt/VRTSspt/FS/VxBench/
합계 716K
dr-xr-xr-x. 2 root root 4.0K 2월 21 09:22 .
dr-xr-xr-x. 5 root root 4.0K 2월 21 09:22 ..
-r--r--r--. 1 root root 405 6월 29 2011 README.vxbench
-r-xr-xr-x. 1 root root 82K 6월 29 2011 vxbench_rhel4_x86
-r-xr-xr-x. 1 root root 103K 6월 29 2011 vxbench_rhel4_x86_64
-r-xr-xr-x. 1 root root 100K 6월 29 2011 vxbench_rhel5_x86_64
-r-xr-xr-x. 1 root root 101K 6월 29 2011 vxbench_sles10_x86_64
-r-xr-xr-x. 1 root root 110K 6월 29 2011 vxbench_sles11_x86_64
-r-xr-xr-x. 1 root root 85K 6월 29 2011 vxbench_sles9_x86
-r-xr-xr-x. 1 root root 109K 6월 29 2011 vxbench_sles9_x86_64
합계 716K
dr-xr-xr-x. 2 root root 4.0K 2월 21 09:22 .
dr-xr-xr-x. 5 root root 4.0K 2월 21 09:22 ..
-r--r--r--. 1 root root 405 6월 29 2011 README.vxbench
-r-xr-xr-x. 1 root root 82K 6월 29 2011 vxbench_rhel4_x86
-r-xr-xr-x. 1 root root 103K 6월 29 2011 vxbench_rhel4_x86_64
-r-xr-xr-x. 1 root root 100K 6월 29 2011 vxbench_rhel5_x86_64
-r-xr-xr-x. 1 root root 101K 6월 29 2011 vxbench_sles10_x86_64
-r-xr-xr-x. 1 root root 110K 6월 29 2011 vxbench_sles11_x86_64
-r-xr-xr-x. 1 root root 85K 6월 29 2011 vxbench_sles9_x86
-r-xr-xr-x. 1 root root 109K 6월 29 2011 vxbench_sles9_x86_64
다음과 같이 Redhat 과 Suse 를 지원하는 바이너리 파일이 설치되어 있다.
help Output 을 확인 해 보자.
[mirr@Mirr-N Oracle]$ vxbench_rhel5_x86_64 -h
usage: vxbench_rhel5_x86_64 -w workload [options] filename ...
Valid options are:
-h print more detailed help message
-P use procs for users, threads for multihreaded I/O (default)
-p use processes for users and for multithreaded I/O
-t use threads for users and for multithreaded I/O
-l lock I/O buffers in memory
-s for multiuser tests only print summary results
-v for multithreaded tests print per-thread results
-k print throughput in kbytes/sec (default)
-m print throughput in mbytes/sec
-w workload select a type of I/O workload
valid workloads are:
read sequential read of the test files
write sequential write of the test files
rand_read random read of the test files
rand_write random write of the test files
rand_mixed mix of random reads and writes
mmap_read use mmap to read the test files
mmap_write use mmap to overwrite the test files
aread sequential aioread of the test files
awrite sequential aiowrite of the test files
arand_mixed mix of random aioreads and aiowrites
-i subopts specify suboptions describing test
valid suboptions are:
nrep=n repeat the I/O loop in the test n times
nthreads=n number of threads accessing each file
iosize=n size of each I/O in K
fsync do an fsync on the file after writing it
remove remove each file after the test
iocount=n number of I/Os
reserveonly reserve space for the file but don't do I/O
maxfilesize=n maximum offset for random I/O tests in K
randseed=n seed value for random number generator
truncup set an inital file size for random I/O
rdpct=n set read percentage of job mix for mixed tests
parallel=n set number of parallel requests for aio tests
seekoff=n seek offset in K for test file (seq tests only)
-o opentype specify flags for opening the file
valid opentypes are:
append use appending writes
sync set the O_SYNC flag for synchronous file I/O
trunc truncate the test files on open
-c cacheopts specify vxfs caching advisories
valid cache options are:
direct use direct I/O to bypass the kernel cache
dsync use data synchronous I/O
noreuse set the VX_NOREUSE cache advisory
random set the VX_RANDOM cache advisory
sequential set the VX_SEQ cache advisory
-e extsize specify a fixed extent size
-r reservation specify space reservation
-f flags specify flags for reservation and fixed extents
valid flags are:
align require aligned extents
chgsize set the file size to the reservation size
contig require contiguous allocation
noextend don't allow writes to extend the file
noreserve allocate space but don't set file reservation
trim trim reservation to file size on last close
Specifying multiple filenames will run tests in parallel to each file,
thus simulating multiple simultaneous users. If multiple threads are
also specified, then each simulated user will run multiple threads so
the total number of I/O threads will be 'users * nthreads'.
For more information on the '-r', '-e', and '-f' arguments see the
setext(1) man page.
usage: vxbench_rhel5_x86_64 -w workload [options] filename ...
Valid options are:
-h print more detailed help message
-P use procs for users, threads for multihreaded I/O (default)
-p use processes for users and for multithreaded I/O
-t use threads for users and for multithreaded I/O
-l lock I/O buffers in memory
-s for multiuser tests only print summary results
-v for multithreaded tests print per-thread results
-k print throughput in kbytes/sec (default)
-m print throughput in mbytes/sec
-w workload select a type of I/O workload
valid workloads are:
read sequential read of the test files
write sequential write of the test files
rand_read random read of the test files
rand_write random write of the test files
rand_mixed mix of random reads and writes
mmap_read use mmap to read the test files
mmap_write use mmap to overwrite the test files
aread sequential aioread of the test files
awrite sequential aiowrite of the test files
arand_mixed mix of random aioreads and aiowrites
-i subopts specify suboptions describing test
valid suboptions are:
nrep=n repeat the I/O loop in the test n times
nthreads=n number of threads accessing each file
iosize=n size of each I/O in K
fsync do an fsync on the file after writing it
remove remove each file after the test
iocount=n number of I/Os
reserveonly reserve space for the file but don't do I/O
maxfilesize=n maximum offset for random I/O tests in K
randseed=n seed value for random number generator
truncup set an inital file size for random I/O
rdpct=n set read percentage of job mix for mixed tests
parallel=n set number of parallel requests for aio tests
seekoff=n seek offset in K for test file (seq tests only)
-o opentype specify flags for opening the file
valid opentypes are:
append use appending writes
sync set the O_SYNC flag for synchronous file I/O
trunc truncate the test files on open
-c cacheopts specify vxfs caching advisories
valid cache options are:
direct use direct I/O to bypass the kernel cache
dsync use data synchronous I/O
noreuse set the VX_NOREUSE cache advisory
random set the VX_RANDOM cache advisory
sequential set the VX_SEQ cache advisory
-e extsize specify a fixed extent size
-r reservation specify space reservation
-f flags specify flags for reservation and fixed extents
valid flags are:
align require aligned extents
chgsize set the file size to the reservation size
contig require contiguous allocation
noextend don't allow writes to extend the file
noreserve allocate space but don't set file reservation
trim trim reservation to file size on last close
Specifying multiple filenames will run tests in parallel to each file,
thus simulating multiple simultaneous users. If multiple threads are
also specified, then each simulated user will run multiple threads so
the total number of I/O threads will be 'users * nthreads'.
For more information on the '-r', '-e', and '-f' arguments see the
setext(1) man page.
봐라 IOzone 등이 갖고 있는 기능을 다 갖고 있으면서도 오히려 더 짧고 직관적인
옵션을 통해 많은 테스트를 할 수 있도록 되어 있다고 생각되지 아니하지 않을수가 없지 않은가!
실제로 테스트가 불가능한 옵션 조합이나, 환경일 경우엔 벤치마킹을 할 수 없는
환경 및 대상이라는 메시지를 뿌려주기도 한다!
(예를 들어 Direct 옵션을 줬는데 디바이스명을 주지않고 파일명을 준다던가..)
이걸 통해 나오는 결과치의 모습을 보자.
[mirr@Mirr-N Oracle]$ vxbench_rhel5_x86_64 -w rand_mixed -i maxfilesize=1000m,truncup,nthreads=16,iosize=256k,nrep=500 /home/mirr/test_file
total1: 0.066 sec 1948664.86 KB/s cpu: 0.14 sys 0.00 user
[mirr@Mirr-N Oracle]$
total1: 0.066 sec 1948664.86 KB/s cpu: 0.14 sys 0.00 user
[mirr@Mirr-N Oracle]$
간단하다 이건 마치 dd 만 친것과도 같은 심플한 결과치!
이걸 이용해 간단하게 엑셀로 BtrFS vs XFS vs EXT4 에대한 그래프를 만들어 보았다.
테스트 조건은 1G 파일을 bzise 만 달리하여 500번의 Write 를 수행한 결과이다.
아래는 응답시간(처리시간)에 대한 그래프이다.
아래는 Chunk Size 를 512k 로 주었을 때이다 ( 작은파일 )
4번째 시퀀스에선 약간 Disk Spindown 현상이 발생했긴 한데, 무시하자 귀찮다..
여기서 보듯이 vxBench 라는 툴로 간단하게 Excel 그래프를 만들어 낼 수 있으며,
BtrFS 가 작은 파일에 더 강하고, XFS 는 큰 파일에 강한지를 알 수 있으며,
Ext4 의 안정적 성능치에 대한 내용을 알아 볼 수 있었다.
참고로 H/W 제원은 나의 노트북이며, 다음과 같은 정보를 갖고 있다.
CPU : Intel i5 M520 2.40GHz
Mem: 4G
Disk : Hitachi SATA 500GB 7200RPM
Mem: 4G
Disk : Hitachi SATA 500GB 7200RPM
이고, 단순히 파일시스템에 대한 성능 측정만을 했음을 알린다.
vxBench 에 대한 공개는 가능한지, 저작관에 문제가 없는지 확신할 수가 없어서
공개 배포는 아무래도 안될것 같은데, 관심 있으면 IRC 나 메일,전화 등등의
수단을 이용해서 연락하기 바란다. 쿨럭.....