| 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 |
| |
| |