Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
io_tester: enhanced fair queue tester
The fair queue tester is a useful tool for testing our I/O subsystem. However it is now not generic enough in the workloads that it runs, nor does it provide an accurate enough summary of its execution. For instance, it will print its final bandwidth but not any latency information. In this patch, I am trying to enhance the capabilities of our current testing infrastructure so that we can have a better understanding of upcoming changes to the I/O Scheduler. Although I have started by applying patches to the fair_queue_tester, the end result looks so much different that I found it was better to just create a new file. Because now it tests so much more than fair queue shares, I have also renamed it to io_tester. The test will read from a YAML file that describes various classes to be executed. A class will generate one job per shard in which it is configured to run. For simplicity, each job (instance of a class in a particular shard) will have a file 1GB-big in size to operate on, and all jobs will then start in parallel. This keep things simple as we don't need to define serialization rules and dependencies between jobs. Read jobs will read from that file, and write jobs can either overwrite that file (sequentially or randomly) or append to that file. Example output (in a laptop disk): Creating initial files... Starting evaluation... Shard 0 Class 0(big_writes: 10 shares, 262144-byte SEQ WRITE, 10 concurrent requests, NO think time) Throughput : 436556 KB/s Lat average : 5847 usec Lat quantile= 0.5 : 2678 usec Lat quantile= 0.95 : 13029 usec Lat quantile= 0.99 : 20835 usec Lat quantile=0.999 : 246090 usec Lat max : 450785 usec Signed-off-by: Glauber Costa <[email protected]> Message-Id: <[email protected]>
- Loading branch information