spew - measures I/O performance and/or generates I/O load (IO ¼º´ÉÃøÁ¤ ¹× IO ·Îµå »ý¼º)
Å×½ºÆ® ȯ°æ
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.
FILE Regular or device file to write data to.
LOGFILE Path to a file used for logging.
MAX_BUFFER_SIZE Minimum buffer size used in each
read(2)/write(2) call (default is
MIN_BUFFER_SIZE bytes).
MAX_BUFFER_SIZE. Must be an even
multiple of 512 bytes and can be
specified in bytes,
kibibytes(k), kilobytes(K),
mebibytes(m), megabytes(M),
gibibytes(g), gigabytes(G).
tebibytes(t), or terabytes(T).
MAX_BUFFER_SIZE defaults to
MIN_BUFFER_SIZE. If MAX_BUFFER_SIZE >
MIN_BUFFER_SIZE, random buffers sizes
between the two limits are used.
MAX_BUFFER_SIZE must be an even
multiple of MIN_BUFFER_SIZE.
MIN_BUFFER_SIZE Minimum buffer size used in each
read(2)/write(2) call (default is
512 bytes).
MIN_BUFFER_SIZE. Must be an even
multiple of 512 bytes and can be
specified in bytes,
kibibytes(k), kilobytes(K),
mebibytes(m), megabytes(M),
gibibytes(g), gigabytes(G).
tebibytes(t), or terabytes(T).
OFFSET Position to seek to in the file before
starting I/O (default is 0). OFFSET
must be an even multiple of 512 bytes
and can be specified in bytes,
kibibytes(k), kilobytes(K),
mebibytes(m), megabytes(M),
gibibytes(g), gigabytes(G).
tebibytes(t), or terabytes(T).
PATTERN Data pattern used when writing/reading
data. Available patterns are: none,
zeros, ones, alt, random, numbers, and "#"
(where "#" is a number between 0-255). The
default pattern is "none".
RCFILE Read additional command-line options
from RCFILE. Other options on the
command-line will override options in
RCFILE.
SEED Used to seed the random number generator
Must be >= 1 and <= 2^32.
TRANSFER_SIZE Total number of bytes to transfer (must
be an even multiple of both
MIN_BUFFER_SIZE and MAX_BUFFER)SIZE).
TRANSFER_SIZE can be specified in
bytes, kilobytes, megabytes, or
gigabytes.
UNITS Kibibytes(k), kilobytes(K),
mebibytes(m), megabytes(M),
gibibytes(g), gigabytes(G).
tebibytes(t), or terabytes(T).