elbencho is an I/O benchmarking tool developed by the illustrious Sven Breuner to combine the best aspects of fio and IOR into a modern, flexible I/O testing tool.

Getting Started - Single Client

To do an fio-like write bandwidth test, I do something like this:

mkdir elbencho.seq.1M
./bin/elbencho ./elbencho.seq.1M \
    --threads 8 \
    --size 1M \
    --block 1M \
    --blockvaralgo fast \
    --blockvarpct 0 \
    --sync \
    --mkdirs \
    --write \
    --delfiles \
    --deldirs \
    --nolive

where all of the arguments fall into one of several groups that affect what the benchmark actually does.

The following define the general parameters of the benchmark:

  • --threads 8 uses eight I/O threads
  • --size 1M generates files that are 1M (1,048,576 bytes) large
  • --block 1M performs writes using 1M (1,048,576 bytes) transfers
  • --blockvaralgo fast uses the "fast" algorithm for filling the write I/O buffers with randomized data
  • --blockvarpct 0 generates new random data in 0% of the write blocks (i.e., every write will contain the same randomized data)
  • --sync calls sync after every step of the test to ensure that we capture the performance of writing data down to persistent media

The following define what tests to actually run:

  • --mkdirs creates a directory in which each thread creates files
  • --write performs a write test
  • --delfiles deletes the files created during the --write phase
  • --deldirs deletes the directories created during the --mkdirs phase

The following affects what information is actually presented to you:

  • --nolive disables a curses-like live update screen that pops up for long-running test phases

The order of these options is not important. elbencho will always order the tests in the sensible way (create dirs, create files, write files, delete files, delete dirs).