Tool to measure disk performance

I am building couple of storage algorithms in Rust and to figure out a proper design for WAL (Write Ahead Log) and disk-flush, I need to measure various disk performance. Specifically,

a. Single threaded Direct I/O, for each write operation, to single file
b. Single threaded Direct I/O, for each write operation, to sharded files.
c. Multi-threaded Direct I/O, for each write operation, to sharded files.
d. Single threaded Batched I/O, to single file
e. Single threaded Batched I/O, to sharded files.
f. Multi-threaded Batched I/O, to sharded files.
g. Repeat (c) (d) (e) with different batch size.
h. Repeat (a) to (g) for different dataset size, say 1G, 10G, 100G.
i. Repeat (a) to (h) for different storage medium, eg: HDD, SDD, NVMe etc…

Is there a tool already available ? Or, should I go ahead and build one ?

1 Like