blkreplay - block device testing and benchmarking tool
blkreplay [
options]
device
blkreplay is a utility driving the block layer of the operating system
while measuring latency and throughput of I/O operations for later
visualisation.
blkreplay can create artificial loads (random read-write sweeps, various
kinds of overload tests) or replay natural loads which have been recorded by
blktrace or a similar utility run at production servers.
blkreplay can be used to test physical hardware, to compare different
brands of hard disks or RAID controllers, to evaluate the effect of SSD
caching, to compare different block level transports like iSCSI vs
Fibrechannel and so on.
blkreplay parses the load data from stdin. To create load data from
blktrace output, use
conv_blktrace_to_load.sh script.
- Influence replay duration:
-
--replay-start=val
- start offset (in seconds, 0=from_start)
-
--replay-end=val
- end offset (in seconds, 0=unlimited)
-
--replay-duration=val
- alternatively specify the end offset as delta
-
--replay-out=val
- start offset, used for output (in seconds)
-
--start-grace=val
- start after grace period for filling the pipes (in
seconds)
- Handling of conflicting I/O requests:
- --with-conflicts
- conflicting writes are ALLOWED (damaged I/O)
- --with-drop
- conflicting writes are simply dropped
- --with-partial
- partial ordering by pushing back conflicts (default)
- --with-ordering
- enforce total order in case of conflicts
-
--strong=val
- mode between 0 and 2, see docs (default=1)
- Replay parameters:
-
--threads=val
- parallelism (default=1024)
-
--fill-random=val
- fill data blocks with random bytes (%, default=0)
- Verification modes:
- --no-overhead
- verify is OFF (default)
- --with-verify
- verify on reads
- --with-final-verify
- additional verify pass at the end
- --with-paranoia
- re-read after each write (destroys performance)
- Convenience:
-
--verbose=val
- increase verbosity, show additional INFO: output
- Expert options (DANGEROUS):
- --o-direct
- use O_DIRECT (default)
- --no-o-direct
- don't use O_DIRECT, deliver FAKE results
- --o-sync
- use O_SYNC
- --no-o-sync
- don't use O_SYNC (default)
- --dry-run
- don't actually do I/O, measure internal overhead
- --fake-io
- omit lseek() and tags, even less internal
overhead
-
--simulate-io=val
- delay value for I/O simulation (timespec
sec.nsec)
-
--ahead-limit=val
- limit pipe fillahead (realtime sec.nsec)
-
--fan-out=val
- only for kernel hackers (default=4)
- --no-dispatcher
- only for kernel hackers
-
--bottleneck=val
- max #requests on dispatch
-
--speedup=val
- speedup / slowdown by REAL factor (default=1.0)
- --mmap-mode
- use mmap() instead of read() / write()
[NYI]
blkreplay was written by Thomas Schoebel-Theuer. This manual page was
created from
blkreplay documentation by Andrew Shadura.
Copyright 2009-2012 Thomas Schoebel-Theuer
blktrace(8)