iobench

The iobench tool allows to perform microbenchmarks on Crail.

Examples

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

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

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

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

Command Reference

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