Skip to content

Commit

Permalink
io_tester: enhanced fair queue tester
Browse files Browse the repository at this point in the history
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
Glauber Costa authored and avikivity committed Nov 22, 2017
1 parent fe19c87 commit 0067937
Show file tree
Hide file tree
Showing 6 changed files with 629 additions and 205 deletions.
196 changes: 0 additions & 196 deletions apps/fair_queue_tester/fair_queue_tester.cc

This file was deleted.

17 changes: 17 additions & 0 deletions apps/io_tester/conf.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
- name: big_writes
shards: all
type: seqwrite
shard_info:
parallelism: 10
reqsize: 256kB
shares: 10
think_time: 0

- name: latency_reads
shards: [0]
type: randread
shard_info:
parallelism: 1
reqsize: 512
shares: 100
think_time: 1000us
Loading

0 comments on commit 0067937

Please sign in to comment.