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