blkreplay(1) 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 script.


Influence replay duration:
start offset (in seconds, 0=from_start)
end offset (in seconds, 0=unlimited)
alternatively specify the end offset as delta
start offset, used for output (in seconds)
start after grace period for filling the pipes (in seconds)
Handling of conflicting I/O requests:
conflicting writes are ALLOWED (damaged I/O)
conflicting writes are simply dropped
partial ordering by pushing back conflicts (default)
enforce total order in case of conflicts
mode between 0 and 2, see docs (default=1)
Replay parameters:
parallelism (default=1024)
fill data blocks with random bytes (%, default=0)
Verification modes:
verify is OFF (default)
verify on reads
additional verify pass at the end
re-read after each write (destroys performance)
increase verbosity, show additional INFO: output
Expert options (DANGEROUS):
use O_DIRECT (default)
don't use O_DIRECT, deliver FAKE results
use O_SYNC
don't use O_SYNC (default)
don't actually do I/O, measure internal overhead
omit lseek() and tags, even less internal overhead
delay value for I/O simulation (timespec sec.nsec)
limit pipe fillahead (realtime sec.nsec)
only for kernel hackers (default=4)
only for kernel hackers
max #requests on dispatch
speedup / slowdown by REAL factor (default=1.0)
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