SYNOPSIS
blkreplay [options] deviceDESCRIPTION
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.
OPTIONS
- 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]
-