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.
This page is a work in progress; I update it as I experiment with elbencho and learn more.
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 8uses eight I/O threads
--size 1Mgenerates files that are 1M (1,048,576 bytes) large
--block 1Mperforms writes using 1M (1,048,576 bytes) transfers
--blockvaralgo fastuses the "fast" algorithm for filling the write I/O buffers with randomized data
--blockvarpct 0generates new random data in 0% of the write blocks (i.e., every write will contain the same randomized data)
--synccalls 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:
--mkdirscreates a directory in which each thread creates files
--writeperforms a write test
--delfilesdeletes the files created during the
--deldirsdeletes the directories created during the
The following affects what information is actually presented to you:
--nolivedisables 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).