반응형
개요
리눅스 디스크 성능 테스트 방법입니다. 얘도 CLI 환경에서 사용하기 때문에 서버 성능 평가를 위해 (많이?) 사용된다고 하네요.
근데 sysbench에서 제공하는 테스트 종류가 많기 때문에 간단한 벤치마킹을 위해선 굳이 필요하진 않구요. 테스트 결과가 sysbench보다 자세하니 자세한 걸 원할 때 사용하시면 될 것 같아요.
iozone 빌드
iozone은 직접 빌드해야 합니다. 일단 소스 파일을 받아 압축을 풀어줍시다.
wget http://www.iozone.org/src/current/iozone3_471.tar
tar -xvf iozone3_471.tar
cd iozone3_471/src/current/
여기서 make 명령어를 입력하시면, makefile에 정의된 대로 빌드가 됩니다만,
make
You must specify the target.
-> AIX (32bit) <-
-> AIX-LF (32bit) <-
-> AIX64 (32bit) <-
-> AIX64-LF (32bit) <-
-> bsdi (32bit) <-
-> convex (32bit) <-
-> CrayX1 (32bit) <-
-> dragonfly (32bit) <-
-> freebsd (32bit) <-
-> freebsd64 (64bit) <-
-> generic (32bit) <-
-> ghpux (32bit) <-
-> hpuxs-11.0 (simple) (32bit) <-
-> hpux-11.0w (64bit) <-
-> hpuxs-11.0w (64bit) <-
-> hpux-11.0 (32bit) <-
-> hpux-10.1 (32bit) <-
-> hpux-10.20 (32bit) <-
-> hpux (32bit) <-
-> hpux_no_ansi (32bit) <-
-> hpux_no_ansi-10.1 (32bit) <-
-> IRIX (32bit) <-
-> IRIX64 (64bit) <-
-> linux (32bit) <-
-> linux-arm (32bit) <-
-> linux-AMD64 (64bit) <-
-> linux-ia64 (64bit) <-
-> linux-powerpc (32bit) <-
-> linux-powerpc64 (64bit) <-
-> linux-sparc (32bit) <-
-> macosx (32bit) <-
-> netbsd (32bit) <-
-> netbsd-AMD64 (64bit) <-
-> openbsd (32bit) <-
-> openbsd-threads (32bit) <-
-> OSFV3 (64bit) <-
-> OSFV4 (64bit) <-
-> OSFV5 (64bit) <-
-> linux-S390 (32bit) <-
-> linux-S390X (64bit) <-
-> SCO (32bit) <-
-> SCO_Unixware_gcc (32bit) <-
-> Solaris (32bit) <-
-> Solaris-2.6 (32bit) <-
-> Solaris7gcc (32bit) <-
-> Solaris8-64 (64bit) <-
-> Solaris8-64-VXFS (64bit) <-
-> Solaris10 (32bit) <-
-> Solaris10cc (64bit) <-
-> Solaris10gcc (32bit) <-
-> Solaris10gcc-64 (64bit) <-
-> sppux (32bit) <-
-> sppux-10.1 (32bit) <-
-> sppux_no_ansi-10.1 (32bit) <-
-> SUA (32bit) <-
-> TRU64 (64bit) <-
-> UWIN (32bit) <-
-> Windows (95/98/NT) (32bit) <-
플랫폼을 명시해줘야 해요. 맞는 플랫폼 코드를 찾아 인수로 입력해줍시다.
보통 데스크탑 64bit CPU일 경우 linux-AMD64 를 해주시면 돼요. 여기선 XU4에서 돌리므로 linux-arm 을 입력할게요.
make linux-arm
이제 얘를 어느 위치에서나 사용이 가능하도록 환경변수 PATH에 등록된 실행파일 디렉토리에 집어넣읍시다. 먼저 어디에 실행파일들이 모여있는지 확인하고 복사합시다.
printenv PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
/usr/bin 이 적절해 보이네요. 여기로 복사.
cp iozone /usr/bin
제대로된 위치에 복사하셨다면 그대로 실행해 확인하실 수 있습니다.
iozone
Usage: For usage information type iozone -h
iozone 벤치마크
간단한 테스트 예제. XU4 + eMMC 32G 예제입니다.
# command
iozone -e -I -a -s 100M -r 4k -r 16384k -i 0 -i 1 -i 2
# results
Iozone: Performance Test of File I/O
Version $Revision: 3.471 $
Compiled for 32 bit mode.
Build: linux-arm
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, Gavin Brebner,
Jean-Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone,
Erik Habbinga, Kris Strecker, Walter Wong, Joshua Root,
Fabrice Bacchella, Zhenghua Xue, Qin Li, Darren Sawyer,
Vangel Bojaxhi, Ben England, Vikentsi Lapa,
Alexey Skidanov.
Run began: Wed Oct 25 14:04:44 2017
Include fsync in write timing
O_DIRECT feature enabled
Auto Mode
File size set to 102400 kB
Record Size 4 kB
Record Size 16384 kB
Command line used: iozone -e -I -a -s 100M -r 4k -r 16384k -i 0 -i 1 -i 2
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.
random random bkwd record stride
kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread
102400 4 17704 18649 20894 20588 15102 16945
102400 16384 53998 72983 142354 142074 142191 74081
iozone test complete.
여기서 봐야할 건 두 개에요.
- 16384K read/write (16M 순차 읽기/쓰기)
- 4K random read/write (4K 랜덤 읽기/쓰기)
그리고 되게 다양한 테스트가 가능한데, 제가 사용한 명령어들은 이렇습니다.
# 사용한 명령어
iozone -e -I -a -s 100M -r 4k -r 16384k -i 0 -i 1 -i 2
# 옵션 설명
-e : 결과 시간 계산에 flush (fsync, fflush) 소요 시간 포함
-I : 모든 파일 동작에 VxFS VX_DIRECT, O_DIRECT, 또는 O_DIRECTIO 사용
-a : 자동 모드
-s : 파일 사이즈 지정 (Kb)
-r : 기록할 사이즈 지정 (Kb)
-i : 실행할 테스트. (0=write/rewrite, 1=read/re-read, 2=random-read/write)
# 모든 옵션 설명을 보기 위해선...
iozone -h
다른 디스크의 성능을 테스트하기 위해선, 간단히 그 디스크가 마운트된 장소로 가 명령어를 실행해주시면 됩니다 :)
참고
반응형
'Programming > OS, Program, Framework Tip' 카테고리의 다른 글
Terminator - 리눅스 터미널 대체, 화면 분할 (0) | 2017.11.09 |
---|---|
iconv - 리눅스에서 텍스트 파일 인코딩 변경 (EUC-KR to UTF-8) (1) | 2017.11.07 |
sysbench - 리눅스 시스템/DB 성능 테스트 (ODROID XU4 성능) (0) | 2017.10.25 |
우분투 17.10 - ibus 한글 입력 (8) | 2017.10.14 |