iobench
=======

The iobench tool allows to perform microbenchmarks on Crail.

Examples
--------

Synchronously write 1MB 1024 times to get a 1GB file:

.. code-block:: bash

   $CRAIL_HOME/crail iobench -t write -f /filename -s $((1024*1024)) -k 1024

Read 1024 1MB buffers asynchronously with a batch size of 4:


.. code-block:: bash

   $CRAIL_HOME/crail iobench -t readSequentialAsync -f /filename -s $((1024*1024)) -k 1024 -b 4

Command Reference
-----------------

.. list-table::
   :header-rows: 1

   * - Argument
     - Default
     - Experiment type
     - Description
   * - :code:`-t <experiment>`
     - *-*
     - N/A
     -  * :code:`write` - sequential sync write
        * :code:`writeAsync` - sequential async write
        * :code:`readSequential` - sequential sync read
        * :code:`readRandom` - random sync read
        * :code:`readSequentialAsync` - sequential async read
        * :code:`readMultiStream` - multistream read
        * :code:`createFile` - create file RPC
        * :code:`createFileAsync` - create file async RPC
        * :code:`createMultiFile` - create multifile
        * :code:`getKey` - getKey RPC
        * :code:`getFile` - getFile sync RPC
        * :code:`getFileAsync` - getFile async RPC
        * :code:`enumerateDir` - enumerate directory
        * :code:`browseDir` - browse directory
        * :code:`writeInt` - write integer
        * :code:`readInt` - read integer
        * :code:`seekInt` - seek integer
        * :code:`readMultiStreamInt` - read integer multistream
        * :code:`printLocationclass` - print machine's location class
   * - :code:`-f <path>`
     - /tmp.dat
     -  * :code:`write`
        * :code:`writeAsync`
        * :code:`readSequential`
        * :code:`readRandom`
        * :code:`readSequentialAsync`
        * :code:`readMultiStream`
        * :code:`createFile`
        * :code:`createFileAsync`
        * :code:`createMultiFile`
        * :code:`getKey`
        * :code:`getFile`
        * :code:`getFileAsync`
        * :code:`enumerateDir`
        * :code:`browseDir`
        * :code:`writeInt`
        * :code:`readInt`
        * :code:`seekInt`
        * :code:`readMultiStreamInt`
     - Path to perform operation with
   * - :code:`-s <size>`
     - :ref:`crail.buffersize <crail-site.conf>`
     -  * :code:`write`
        * :code:`writeAsync`
        * :code:`readSequential`
        * :code:`readRandom`
        * :code:`readSequentialAsync`
        * :code:`readMultiStream`
        * :code:`getKey`
     - Buffer size in bytes. Only relevant for buffered experiments.
   * - :code:`-k <n>`
     - 1
     -  * :code:`write`
        * :code:`writeAsync`
        * :code:`readSequential`
        * :code:`readRandom`
        * :code:`readSequentialAsync`
        * :code:`readMultiStream`
        * :code:`createFile`
        * :code:`createFileAsync`
        * :code:`getKey`
        * :code:`getFile`
        * :code:`getFileAsync`
        * :code:`writeInt`
        * :code:`readInt`
        * :code:`seekInt`
        * :code:`readMultiStreamInt`
     - Number of operations to perform
   * - :code:`-b <size>`
     - 1
     -  * :code:`writeAsync`
        * :code:`readSequentialAsync`
        * :code:`readMultiStream`
        * :code:`createFileAsync`
        * :code:`createMultiFile`
        * :code:`getFileAsync`
        * :code:`enumerateDir`
        * :code:`readMultiStreamInt`
     - Batch size of asynchronous requests.
   * - :code:`-c <storage_class>`
     - 0
     -  * :code:`write`
        * :code:`writeAsync`
        * :code:`createFile`
     - Storage class of file.
   * - :code:`-p <location_class>`
     - 0
     -  * :code:`write`
        * :code:`writeAsync`
        * :code:`createFile`
     - Location class of file
   * - :code:`-w <n>`
     - 32
     -  * :code:`write`
        * :code:`writeAsync`
        * :code:`readSequential`
        * :code:`readRandom`
        * :code:`readSequentialAsync`
        * :code:`readMultiStream`
        * :code:`createFile`
        * :code:`createFileAsync`
        * :code:`getFile`
        * :code:`getFileAsync`
        * :code:`enumerateDir`
     - Number of warmup operations
   * - :code:`-e <experiments>`
     - 1
     -  * :code:`readSequential`
        * :code:`readRandom`
        * :code:`readSequentialAsync`
        * :code:`readMultiStream`
     - Number of experiments to run
   * - :code:`-o <true/false>`
     - false
     -  * :code:`readSequential`
        * :code:`readRandom`
        * :code:`readSequentialAsync`
        * :code:`readMultiStream`
     - Keep file system open between experiments
   * - :code:`-d <true/false>`
     - false
     -  * :code:`write`
        * :code:`writeAsync`
     - Skip writing directory record
   * - :code:`-m <true/false`
     - true
     -  * :code:`write`
        * :code:`readSequential`
        * :code:`readRandom`
     - Use buffered streams


