spew
measures I/O performance and/or generates I/O load (IO 성능측정 및 IO 로드 생성)
리눅스 시스템에서 디스크 성능측정시 많이 사용하는 iozone, dd, fio, iometer, hdparm 하고 비슷한 디스크 벤치마킹 도구입니다.
많이들 사용하는 벤치마킹툴에 비해 심플하고 가벼운 느낌.
테스트 환경
OS : Ubuntu 14.04 LTS
# apt-get install spew
아래는 테스트 인프라내에 있는 디스크 측정결과 입니다.
서버 환경을 고려하지 않고 측정하였으니 출력결과 패턴정도만 확인하시기 바랍니다.
:: KINGRICH SSD 32G 1EA
# rm -rf /tmp/test && spew -i 50 -v -d –write -r -b 4096 10M /tmp/test
Iteration: 2 Total runtime: 00:00:05
WTR: 3685.16 KiB/s Transfer time: 00:00:02 IOPS: 921.29
Iteration: 3 Total runtime: 00:00:08
WTR: 3637.93 KiB/s Transfer time: 00:00:02 IOPS: 909.48
………………….
………………….
:: Software Raid 1 MIcron Crucial SSD 256G 1EA
Iteration: 2 Total runtime: 00:00:00
WTR: 53156.42 KiB/s Transfer time: 00:00:00 IOPS: 13289.11
Iteration: 3 Total runtime: 00:00:00
WTR: 43856.27 KiB/s Transfer time: 00:00:00 IOPS: 10964.07
Iteration: 4 Total runtime: 00:00:00
WTR: 46210.64 KiB/s Transfer time: 00:00:00 IOPS: 11552.66
………………….
………………….
:: SATA 3T 8EA, RAID 6
# rm -rf /tmp/test && spew -i 50 -v -d –write -r -b 4096 100M ./test
Iteration: 1 Total runtime: 00:00:01
WTR: 68826.83 KiB/s Transfer time: 00:00:01 IOPS: 17206.71
Iteration: 2 Total runtime: 00:00:03
WTR: 68633.67 KiB/s Transfer time: 00:00:01 IOPS: 17158.42
Iteration: 3 Total runtime: 00:00:04
WTR: 69974.56 KiB/s Transfer time: 00:00:01 IOPS: 17493.64
………………….
………………….
# spew –help
Usage: spew –write|–read|–read-after-write [OPTION]… TRANSFER_SIZE[kKmMgG] FILE
An I/O performance measurement and load generation tool. Writes and/or
reads generated data to or from a character device, block device, or
regular file.
-B, –max-buffer-size=BUFFER_SIZE Each read(2)/write(2) call uses a maximum buffer of size BUFFER_SIZE.
-b, –min-buffer-size=BUFFER_SIZE Each read(2)/write(2) call uses a minimum buffer of size BUFFER_SIZE.
-c, –continue-after-error Continue after data integrity errors.
-d, –direct Use direct I/O. Should only be used on block device files. Not all operating systems support direct I/O
-g, –generate-load Equivalent to: -v -t -P -p random -i 0.
-i, –iterations=COUNT Write/read data COUNT times. If count is 0, repeats forever.
-l, –logfile=LOGFILE Send log messages to LOGFILE.
–no-progress Don’t show progress (default).
–no-rcfiles Don’t use standard rcfiles.
-q, –no-statistics Don’t output statistics.
–no-tui Don’t use TUI interface.
-o, –offset=OFFSET Seek to OFFSET before starting I/O.
-P, –progress Show progress.
-p, –pattern=PATTERN Use data pattern PATTERN when reading or writing data.
-r, –random Read/Write buffers to random offsets.
–raw An alias for –read-after-write.
–rcfile=RCFILE Read command-line options from RCFILE.
–read Read date from FILE.
–read-after-write Read back data after writing to FILE.
-S, –seed=SEED Use SEED for random number seed.
-s, –sync Use synchronous I/O.
–statistics Output statistics (default).
-t, –tui Use curses-based, terminal user interface.
-u, –units=UNITS Show transfer rate in UNITS units.
–usage Show brief usage message and exit.
-V, –version Output version information and exit.
-v, –detailed-statistics Output detailed statistics.
–write Write data to FILE.
-?, –help Show this help and exit.